欢迎来到之路教程(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 删除实体的示例。

JPA 如何删除实体
日期:2020-09-17 00:09:50 来源:oir作者:oir