ManyToOne with where子句

pst*_*ton 7 hibernate jpa

我有一些逻辑删除的记录(即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;
Run Code Online (Sandbox Code Playgroud)

但是,似乎WhereJoinTablehibernate没有使用它(也许它只对它有效OneToMany?),因为active=true它不会出现在生成的SQL(日志)中,并且问题仍然存在.

是否可以为a ManyToOne和如何连接包含where子句?

Mik*_*unu 4

@ManyToOne 不支持 @WhereJoinTable。五年来一直存在关于该主题的错误HHH-4335 。除了错误报告中提到的使用视图(在只读访问的情况下)之外,我不知道有任何解决方法。