我有一个hibernate实体/模型类,如下所示
class User{
private Integer id,
Private String name,
private String description
//getters and setters
public void Save(this){
}
}
在此类声明中定义save方法以及setter和getter是一个很好的约定吗?我们是否有使用这样的好处,例如避免重复记录?
答案 0 :(得分:0)
不,这不是一个好的约定。通常你有一个名为DAO(数据访问对象)的特殊层,它关心保存/获取/删除......你的实体。域模型(即您的实体)仅表示数据,并且存在与其一起使用的DAO层。使用JPA这样强大的规范,您可以将DAO层与业务逻辑层(EJB / Beans / CDI)合并,但这可能是另一个讨论的主题。当然,您可以在实体中进行一些验证,或者例如没有持久化的方法getLoggingString(),但返回要记录的实体的String版本。
PS:你写的方法对于那个签名没什么意义:你需要一个public User save()
方法来保存自己,或者你需要一个static public User save(User userToSave)
。
一些参考文献: