我在我的 Hibernate 實體類上使用以下註釋
@Table(name="cms_user", schema="public")
@Where(clause = "deleted = false")
public class User {
..
}
因此它不會加載“軟刪除”的記錄。但是當我作為另一個查詢的一部分獲取這個實體時:
queryRoot.fetch("cmsUser", JoinType.INNER);
不應用此 where 子句,並且刪除的用戶也是可見的。當然,我可以將它們過濾掉,但我正在尋找一種有效的方法來deleted = false
在一個地方設置它,@Where 或其他一些休眠類註釋是一個很好的候選者。
有什麼方法可以註釋我的休眠類,以便deleted = false
也適用於獲取和連接?
我沒有測試它,而是嘗試向@Where
您加入的實體添加註釋,換句話說,添加到您的@OneToMany
註釋中。
@Where(clause = "deleted = false")
@OneToMany(mappedBy = "joinedEntity", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private List<User> userList;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句