关联时的Hibernate自定义连接子句
我想将使用hibernate注释的2个实体与自定义连接子句相关联。 该子句与通常的FK / PK相等,但也是FK为空的。 在SQL中,这将是这样的:
join b on a.id = b.a_id or b.a_id is null
根据我的阅读,我应该在所有者实体上使用@WhereJoinTable注释,但我很困惑我如何指定这个条件……特别是它的第一部分 – 指的是加入实体的id。
有人有例子吗?
这是一个使用标准父/子范例的例子,我认为应该使用基本的@Where注释。
public class A { ... @ManyToOne(fetch = FetchType.EAGER) // EAGER forces outer join @JoinColumn(name = "a_id") @Where(clause = "a_id = id or a_id is null") // "id" is A's PK... modify as needed public B getB() { return b; } } public class B { ... @OneToMany(mappedBy = "b") public List getA() { return a; } }
- 使用什么冲洗模式’自动’或’提交’
- 如何在JBoss7.1.1.Final中创建多个持久性单元名称
- 我可以在ConstraintValidator中为Method参数更改属性路径吗?
- EntityManager无法使用persist将元素保存到数据库
- 使用Hibernate / JPA按给定顺序通过给定id选择一组对象的最佳方法是什么
- 使用@IdClass和*嵌套*复合主键限制JPA 1.0?
- 在执行JPA查询时获取NoSuchMethodError:javax.persistence.Table.indexes()
- Hibernate和@JoinFormula:org.hibernate.mapping.Formula无法强制转换为org.hibernate.mapping.Column
- @ManyToMany没有连接表(旧数据库)