java - eager fetch 在 hibernate 中执行左连接

标签 java hibernate

我正在定义一个实体 myParent,除了一件事之外它工作正常。它具有以下定义:

@OneToMany(mappedBy = "myParent", cascade = { CascadeType.ALL }, fetch = FetchType.EAGER)
private List<Child> children;

这会导致执行左连接或右连接,因此如果有两个 child ,我会得到两个 parent 。我不希望我只想要一个 parent 和两个 child 。

我可以将 fetchtype 更改为惰性,但我真的不想要那样......?

当我选择所有 parent 时,列表包含重复的 parent ,我不想要重复的。

最佳答案

您应该使用DISTINCT_ROOT_ENTITY ResultTransformer .

这意味着每行结果都是根实体的不同实例。

关于java - eager fetch 在 hibernate 中执行左连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10400028/

相关文章:

spring - 不支持 DML 操作。无法使用 spring 数据更新 postgresql 数据库中的数据

java - 声明和调用包含数组和整数的函数时遇到问题

java - Hibernate:实体副本 [Event#XXX] 已分配给不同的实体 [Event#XXX]

一对多/多对一关系的 Hibernate 设置

java - Hibernate Cascade 来自另一个数据库的另一个 ID

java - Android:如何在设备的后退按钮操作栏和后退按钮上保留对象的状态

java - 将 ZoneId 和时间戳转换为 java 8 中的格式化日期字符串,考虑夏令时

java - 使用Gson将JSON反序列化为java记录

当异常()内部抛出异常时,Java Play 自定义onServerError不会触发

java - 使用 Spring WebFlow 在 Hibernate 中进行 C3P0 池化仍然没有成功