相关疑难解决方法(0)

一对多关系在不使用"distinct"的情况下获取重复对象.为什么?

我有一个一对多关系的2个类和一个有点奇怪的HQL查询.即使我已经阅读了一些已经发布的问题,但我似乎并不清楚.

Class Department{
   @OneToMany(fetch=FetchType.EAGER, mappedBy="department")
   Set<Employee> employees;
}
Class Employee{
   @ManyToOne
   @JoinColumn(name="id_department")
   Department department;
}
Run Code Online (Sandbox Code Playgroud)

当我使用以下查询时,我得到重复的Department对象:

session.createQuery("select dep from Department as dep left join dep.employees");

因此,我必须使用不同的:

session.createQuery("select distinct dep from Department as dep left join dep.employees");

这种行为是预期的吗?我认为这与SQL有所不同.

java hibernate hql distinct one-to-many

50
推荐指数
1
解决办法
4万
查看次数

hibernate OneToMany标准返回重复项

我有一个由以下映射的关联:

@Entity
public class Parent
{
...
    @Id
    @Column(name = "parent_id")
    private Long id;

    @OneToMany(mappedBy = "parent")
    @OrderBy("id")
    private List<Child> children;
...
}

@Entity
public class Child
{
...
    @Id
    @Column(name = "child_id")
    private Long id;

    @ManyToOne
    @NotFound(action = NotFoundAction.IGNORE)
    @JoinColumn(name = "parent_id")
    private Parent parent;

    @Column
    private Boolean enabled;
...
}
Run Code Online (Sandbox Code Playgroud)

我想使用Criteria API返回Parent包含一个或多个Child具有该属性的实体的所有实体的列表enabled=false.我不希望children查询过滤映射的集合.

例如,给出以下内容:

Parent A
    - Child A enabled=true
    - Child B enabled=false

Parent B
    - Child A enabled=false
    - …
Run Code Online (Sandbox Code Playgroud)

java hibernate

7
推荐指数
1
解决办法
4689
查看次数

标签 统计

hibernate ×2

java ×2

distinct ×1

hql ×1

one-to-many ×1