Mih*_*vic 7 java jpa join eclipselink criteria-api
我想这很容易,但我无法弄清楚.
如果我有实体Foo和Bar:
@Entity
class Foo{
@OneToMany
List<Bar> bars;
}
@Entity
class Bar{
@Column
int data;
}
Run Code Online (Sandbox Code Playgroud)
如果我想创建一个Join(javax.persistence.criteria.Join<Foo, Bar>)对象,我可以这样做:
Root<Foo> root = ...;
Join<Foo,Bar> join = root.join(Foo_.bars);
Run Code Online (Sandbox Code Playgroud)
但是我怎样才能进行反向连接
Join<Bar,Foo> inverseJoin = barRoot.join....()...?
Run Code Online (Sandbox Code Playgroud)
因为我在类Bar中没有指向它的Foo父类的java字段,它是单向关系?
Jor*_*e C -1
如果您需要的是一个已知的 Bar,该 Bar 是其所属的 Foo,那么这将适合。句子不会被转换为 SQL JOIN,但它在语义上是等效的。
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery<Foo> cq = cb.createQuery(Foo.class);
Root<Foo> fooRoot = cq.from(Foo.class);
Root<Bar> barRoot = cq.from(Bar.class);
cq.select(fooRoot);
cq.where(barRoot.in(fooRoot.get("bars")));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1668 次 |
| 最近记录: |