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?