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的方法createQuery或createNativeQuery 使用
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的方法createQuery或createNativeQuery 使用
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%");
你可以读这个