ManyToOne与where子句

我有一些逻辑删除的记录(即active=false ),这些记录导致我的@ManyToOne映射出现问题,因为连接列会返回多个结果。

我只需要包含active=true记录,我认为我可以通过以下方式实现:

@ManyToOne
@NotFound(action = NotFoundAction.IGNORE)
@JoinColumn(name = "site_id", referencedColumnName = "site_id", insertable = false, updatable = false)
@WhereJoinTable(clause = "active=true")
private Site site;

但是,好像WhereJoinTable没有被hibernate使用(也许它只对OneToMany有效),因为active=true并没有出现在生成的SQL(日志)中,问题依然存在。

是否可以包含一个ManyToOne的加入的where子句以及如何?


@ManyToOne不支持@WhereJoinTable。 自5年以来有关于科目开放的HHH-4335有问题。 除了在bug报告中提到的使用视图(在只读访问的情况下),我不知道任何解决方法。


@JoinColumnOrFormula anotation是一个合适的解决方法

链接地址: http://www.djcxy.com/p/59123.html

上一篇: ManyToOne with where clause

下一篇: How to see heap and stack usage of a function in c using valgrind?