创建命名本机 UPDATE 查询
命名 SQL 查询是使用 @NamedNativeQuery
注释定义的。
该注释可以放置在任何实体上,并定义查询的名称以及查询文本。
与 JPQL 命名查询一样,查询的名称在持久性单元中必须是唯一的。
SQL UPDATE 语句的命名本机查询定义如下:
@Entity(name="EmployeeEntity") @Table (name="employee") @SqlResultSetMapping(name="updateResult", columns = { @ColumnResult(name = "count")}) @NamedNativeQueries({ @NamedNativeQuery( name = "updateEmployeeName", query = "UPDATE employee SET firstName = ?, lastName = ? WHERE id = ?" ,resultSetMapping = "updateResult" ) }) public class EmployeeEntity implements Serializable { //more code }
在这里,我们定义了一个命名的本地查询 updateEmployeeName
。
它可用于直接更新数据库中员工的名字和姓氏。
www. On IT Road .com
如何执行命名更新查询
要执行上述 SQL 查询,我们需要使用 EntityManager.executeUpdate() 方法。
@PersistenceContext private EntityManager manager; @Override public boolean updateEmployeeName( Integer id, String firstName, String lastName ) { try { manager.createNamedQuery("updateEmployeeName", EmployeeEntity.class) .setParameter(1, firstName) .setParameter(2, lastName) .setParameter(3, id) .executeUpdate(); return true; } catch (Exception e) { return false; } }
日期:2020-09-17 00:09:51 来源:oir作者:oir