欢迎来到之路教程(on itroad-com)
如何执行命名删除查询
要执行上述 SQL 删除查询,我们需要使用 EntityManager.executeUpdate()
方法。
@PersistenceContext private EntityManager manager; @Override public boolean deleteEmployeeById( Integer id ) { try { manager.createNamedQuery("deleteEmployeeById", EmployeeEntity.class) .setParameter(1, id) .executeUpdate(); //Execute the delete query manager.flush(); //update entity manager with changes manager.refresh(getEmployeeById(id)); return true; } catch (Exception e) { return false; } }
创建命名本机 DELETE 查询
命名 SQL 查询是使用 @NamedNativeQuery
注释定义的。
该注释可以放置在任何实体上,并定义查询的名称以及查询文本。
与 JPQL 命名查询一样,查询的名称在持久性单元中必须是唯一的。
SQL DELETE 语句的命名本机查询定义如下:
@Entity(name="EmployeeEntity") @Table (name="employee") @SqlResultSetMapping(name="deleteResult", columns = { @ColumnResult(name = "count")}) @NamedNativeQueries({ @NamedNativeQuery( name = "deleteEmployeeById", query = "DELETE FROM employee WHERE id = ?" ,resultSetMapping = "deleteResult" ) }) public class EmployeeEntity implements Serializable { //more code }
在这里,我们定义了一个命名的原生查询 deleteEmployeeById
。
它可用于使用员工 ID 从数据库中删除员工记录。
这是 jpa 通过 id 删除实体的示例。
日期:2020-09-17 00:09:50 来源:oir作者:oir