几乎我们数据库中的每个表都有一个FK到审计表,它记录了创建,更新和删除的状态(日期和用户名).
我们将审计表映射到Auditing类并使用它如下:
@MappedSuperclass public class BusinessObject extends DataObject { private static final long serialVersionUID = -1147811010395941150L; @OnetoOne(fetch = FetchType.EAGER,cascade = { CascadeType.ALL }) @JoinColumn(name = "AUD_ID") private AuditingObject auditing; ...
正如您所期望的那样,几乎每个实体都从BusinessObject扩展而来.
有一种简单的方法可以说,对于每个businessObject,只接收“auditing.deleted为null”.
我已经尝试在businessObject中添加@Where和@WhereJoinTable,但这似乎不像我期望的那样工作.
目前,我已经对我的一个查询做了这个工作,但我讨厌为所有查询执行此操作,因为我们有大约150个查询.
@NamedQuery( name="allCountries",query="SELECT c FROM Country c" + " LEFT JOIN FETCH c.labelDeFinition " + " LEFT JOIN FETCH c.labelDeFinition.translations " + " WHERE c.auditing.deleted is null" + " ORDER BY c.code" )
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。