作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
如果你有这个实体:
@Entity
public class A {
@ManyToOne
@JoinColumn(name = "bField", nullable = true)
private B myBObject;
}
我有一个标准的通用生成器,它会执行此操作:
Root<A> root = criteria.from(A.class);
root.get("myBObject").get("aFieldInB");
问题如下:生成的 sql 将包含 A 和 B 之间的 CROSS JOIN。但我希望生成的 sql 将包含 A 和 B 之间的 LEFT JOIN。
我该怎么做?
最佳答案
您必须使用 join()。一般来说,最好始终对关系使用 join()。
看, http://en.wikibooks.org/wiki/Java_Persistence/Criteria#JoinType
关于java - JPA2 条件 : How to avoid a cross join using path. get(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15923710/
我是一名优秀的程序员,十分优秀!