hibernate - 带有 where 子句的 ManyToOne

标签 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;

然而,似乎是WhereJoinTableOneToMany 以来,hibernate 没有使用(也许它只对 active=true 有效?)未显示在生成的 SQL(日志)中,问题仍然存在。

是否可以包含一个 where 子句来连接 ManyToOne如何?

最佳答案

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

关于hibernate - 带有 where 子句的 ManyToOne,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10377899/

相关文章:

java - JPA/Hibernate : @ManyToOne and @OneToOne relationships tagged as FetchType. LAZY 和 optional = false 不在 em.find() 上延迟加载?

spring - Spring Boot JPA加载多对多

java - Spring 启动,JPA 错误 : "Error executing DDL via JDBC Statement"

java - 使用JPQL/JPA时如何使用date_format

java - 防止 Hibernate 架构更改

java - 如何获取可嵌入的更改?

spring - 类没有资格被所有 BeanPostProcessor 处理

java - ORA-00001 : unique constraint violated

java - JPA仪器仪表

java - #Resolved - 查询//存储函数调用中不存在位置参数