簡體   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