有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在hibernate/jpa实体类中定义save方法是一种好的约定吗?

我有一个hibernate实体/模型类,如下所示

class User{
  private Integer id,
  Private String name,
  private String description

  //getters and setters

   public void Save(this){
  }
}

在这个类声明中定义save方法以及setter和getter是一种好的约定吗?这样使用是否有任何好处,例如避免重复记录


共 (1) 个答案

  1. # 1 楼答案

    不,那不是一个好的惯例。通常,您有一个名为DAO(数据访问对象)的特殊层,负责保存/获取/删除。。。你的实体。域模型(即您的实体)只表示数据,DAO层处理它们。使用JPA这样强大的规范,您可以将DAO层与业务逻辑层(EJB/Beans/CDI)合并,但这可能是另一个讨论的主题。当然,您的实体中可能有一些验证内容,例如一个方法getLoggingString(),它不会持久化,但会返回要记录的实体的字符串版本

    PS:您编写的方法对该签名没有什么意义:您需要一个保存自身的public User save()方法,或者需要一个static public User save(User userToSave)

    一些参考资料:

    1. DAO
    2. Should you have a separate DAO layer (i.e not merged with your business layer)?