我不知道我的问题是否足够清楚,但是想像一下需要从数据库中删除实体的情况。
如果我使用的是JPA的EntityManager.remove(Object object)
,则必须在删除对象之前对其进行检索。
为此,我有一个名为delete()
的方法,该方法接收一个ID,查询调用另一个称为get()
的方法的实体,然后将其删除。
public Clazz delete(Integer key) {
Clazz clazz = get(key);
entityManager.remove(clazz);
return clazz;
}
public Clazz get(Integer key) {
return entityManager.find(Clazz.class, key);
}
我不知道这是否是正确的方法。
get()
的调用应该在服务层,还是正确的方法?
答案 0 :(得分:2)
“正确的方法”实际上取决于dao界面上用户的需求。
如果大多数时候用户仅具有删除对象的键,则更有意义的是使用key作为参数来提供删除。或者,如果不确定,我们还可以提供两种主要的删除方法,一种是使用键,另一种是使用对象。
仍然是相关主题,我们也可以考虑使用query来删除对象而不将其从数据库中获取。