JPA执行更新示例

创建命名本机 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