我有一些逻辑删除的记录(即 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
自 OneToMany
以来,hibernate 没有使用(也许它只对 active=true
有效?)未显示在生成的 SQL(日志)中,问题仍然存在。是否可以包含一个 where 子句来连接
ManyToOne
如何?
最佳答案
@ManyToOne 不支持@WhereJoinTable。有错误 HHH-4335关于主题开放五年。我不知道任何解决方法,除了使用错误报告中提到的 View (在只读访问的情况下)。
关于hibernate - 带有 where 子句的 ManyToOne,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10377899/