2017-08-17 75 views
0

我有一個User實體,它與UserSkill實體有一對多的關係。 UserSkill可以活性非活動(不活動時設置技能缺失,而不是完全刪除它)。事情是,大部分時間活動技能對最終用戶來說都很重要(稍後可能會出於統計目的而使用不活動技能)。有了這樣的想法,當我查詢從數據庫User實體,大部分我想通過它僅訪問活躍技能的時間。Spring Entity getter中的簡單邏輯?

我的問題是,它實現更好:

  1. 我對User實體getUserSkills(簡單的getter)和getActiveUserSkills(吸氣 一些過濾),並使用getActiveUserSkills 的大部分時間。 (大家似乎都跟這POJO應該是POJO,不需要額外的邏輯。)
  2. 我有userSkillService,我有 getActiveUserSkills(User user)方法,它返回只有活躍用戶 技能。然後我在需要時使用這些主動技能以及User。這裏的問題是,每次我得到,我都會有那些不必要的無用技能。

其他實施意見也歡迎。謝謝 !

回答

0

當然,第一種解決方案更好。當實體可以簡單地提供信息而不需要任何額外的依賴性時,沒有理由使用服務。

如果您需要訪問存儲庫或其他服務以確定哪些技能是活動的(因爲您通常不希望實體層依賴於服務和存儲庫),那麼使用外部服務將非常有用。所以,如果加載所有技能導致了性能或內存問題,我會說要採用服務或存儲庫方式,並且您希望執行查詢以在多種技能中僅獲得少數活動技能。但這似乎並不是這種情況。