使用 EntityManager.find()

实际上,只有一行很重要:

DepartmentEntity department = manager.find(DepartmentEntity.class, 123);

在上面的行中,我们传入了正在寻找的实体的类以及标识特定实体的 id 或者主键。

这是实体管理器在数据库中查找实例所需的所有信息,当调用完成时,返回的部门将是一个托管实体,这意味着它将存在于与实体管理器关联的当前持久化上下文中. 将类作为参数传入还允许对 find() 方法进行参数化并返回与传入的类型相同的对象,从而为调用者节省了另外的强制转换。

如果对象已被删除或者我们不小心提供了错误的 ID,会发生什么情况?
如果未找到对象,则 find() 调用仅返回 null。
我们需要确保在下次使用部门变量之前执行空检查。

@Override
public DepartmentEntity getDepartmentById(Integer id) {
	return manager.find(DepartmentEntity.class, id);
}
在 JPA 中如何查找实体

使用实体管理器找到实体。

on it road .com

使用 JPQL 查找实体

假设我们要查找所有部门,那么上述方法将无法得到我们想要的结果,因为它一次只能找到一个部门实体。
要获取所有部门,请按以下方式使用 JPQL。

public List<DepartmentEntity> getAllDepartments() 
{
	List<DepartmentEntity> depts = manager.createQuery("Select a From DepartmentEntity a",
														DepartmentEntity.class).getResultList();
	return depts;
}
日期:2020-09-17 00:09:50 来源:oir作者:oir