Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何获得一个具体的;“世界其他地区”;当主键自动递增时,使用JPA(EclipseLink)从数据库中删除?_Java_Mysql_Jpa_Eclipselink_Java Persistence Api - Fatal编程技术网

Java 如何获得一个具体的;“世界其他地区”;当主键自动递增时,使用JPA(EclipseLink)从数据库中删除?

Java 如何获得一个具体的;“世界其他地区”;当主键自动递增时,使用JPA(EclipseLink)从数据库中删除?,java,mysql,jpa,eclipselink,java-persistence-api,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); 但此实

假设我有这张桌子

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);

但此实例中的主键是自动递增的,是否可以使用其他列(如名字和姓氏)返回一行以获取主键和其他值?

使用entityManager的方法createQuerycreateNativeQuery

使用
createQuery
必须使用
JPQL
语法,使用
createNativeQuery
必须使用标准SQL语法

例如:

Query query = EntityManager.createQuery("select * from person p where p.first_name = :fname");
17.
query.setParameter("fname", firstName);
Person p = query.getSingleResult();

使用entityManager的方法createQuerycreateNativeQuery

使用
createQuery
必须使用
JPQL
语法,使用
createNativeQuery
必须使用标准SQL语法

例如:

Query query = EntityManager.createQuery("select * from person p where p.first_name = :fname");
17.
query.setParameter("fname", firstName);
Person p = query.getSingleResult();

您可以这样创建NamedQuery:

@NamedQuery(name="person.findAll", query="SELECT p FROM Person p WHERE like :first_name") 
query.setParamter("fist_name", "%name%");
并且可以为“first_name”赋值,如下所示:

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

您可以阅读此内容。

您可以创建这样一个命名查询:

@NamedQuery(name="person.findAll", query="SELECT p FROM Person p WHERE like :first_name") 
query.setParamter("fist_name", "%name%");
并且可以为“first_name”赋值,如下所示:

@NamedQuery(name="person.findAll", query="SELECT p FROM Person p WHERE like :first_name") 
query.setParamter("fist_name", "%name%");
你可以读这个