繁体   English   中英

在hibernate / jpa实体类中定义save方法是否是一个好习惯?

[英]Is it a good convention to define save method inside hibernate/jpa entity class?

我有一个休眠的实体/模型类,如下所示

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

  //getters and setters

   public void Save(this){
  }
}

在此类声明中与setter和getter一起定义save方法是否是一个好习惯? 这样使用是否有好处,例如避免重复记录?

不,那不是一个好习惯。 通常,您有一个称为DAO(数据访问对象)的特殊层,它关心保存/获取/删除...您的实体。 域模型(即您的实体)仅表示数据,并且有DAO层与它们一起使用。 使用JPA这样强大的规范,您可以将DAO层与业务逻辑层(EJB / Beans / CDI)合并,但这可能是另一个讨论的主题。 当然,您可以在实体中进行一些验证,例如,未持久化但返回要记录的实体的String版本的方法getLoggingString()。

PS:您编写的方法与该签名毫无意义:您需要保存自身的public User save()方法,或者需要static public User save(User userToSave)

一些参考:

  1. DAO
  2. 您是否应该有一个单独的DAO层(即不与您的业务层合并)?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM