java - 当主键自动递增时,如何使用 JPA (EclipseLink) 从数据库中获取特定的 "row"?

标签 java mysql jpa eclipselink java-persistence-api

假设我有这张表

CREATE TABLE person(
    person_id INT AUTO_INCREMENT PRIMARY KEY,
    first_name VARCHAR(50),
    last_name VARCHAR(50),
    x_cordinates INT,
    y_cordinates INT
);

我以前用过

Person person = EntityManager.find(Person.class, primaryKey);

但是这个实例中的主键是自动递增的,是否可以使用其他列(例如 first_name 和 last_name)来获取主键以及其他值?

最佳答案

您可以像这样创建一个 NamedQuerry:

@NamedQuery(name="person.findAll", query="SELECT p FROM Person p WHERE like :first_name") 

并且可以像这样给“first_name”赋值:

query.setParamter("fist_name", "%name%");

你可以阅读这个 documentation .

关于java - 当主键自动递增时,如何使用 JPA (EclipseLink) 从数据库中获取特定的 "row"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36886016/

相关文章:

java - 数组中的重复项无效输入

java - 如何将一些数据放入数组变量并作为 JSONarray 发布?

mysql - 如何计算默认实例没有的行中的值?

mysql - 连接3个mysql表

java - 将单个 Join 实例传递给多个Specification 实例?

java - hibernate 延迟加载不起作用

java - 远程调试在 Glassfish 中运行的 Java Web 应用程序

java: 为什么比较。当我在声明期间使用 {} 初始化数组时出错

mysql - 查找空闲时间

java - 级联保存不适用于 Hibernate 4 和 @OneToMany