Java eager-fetch在hibernate中执行左连接
我正在定义一个实体,myParent,它工作得很好,除了一件事。其定义如下:Java eager-fetch在hibernate中执行左连接,java,hibernate,Java,Hibernate,我正在定义一个实体,myParent,它工作得很好,除了一件事。其定义如下: @OneToMany(mappedBy = "myParent", cascade = { CascadeType.ALL }, fetch = FetchType.EAGER) private List<Child> children; @OneToMany(mappedBy=“myParent”,cascade={CascadeType.ALL},fetch=FetchType.EAGER) 私人名单
@OneToMany(mappedBy = "myParent", cascade = { CascadeType.ALL }, fetch = FetchType.EAGER)
private List<Child> children;
@OneToMany(mappedBy=“myParent”,cascade={CascadeType.ALL},fetch=FetchType.EAGER)
私人名单儿童;
这会导致执行左或右连接,因此如果有两个孩子,我会得到两个家长。我不想要,我只想要一个父母和两个孩子
我可以把fetchtype改成lazy,但我真的不想这样
当我选择“所有父项”时,列表中包含重复的父项,我不想要重复的父项。您应该使用
DISTINCT\u ROOT\u实体
这意味着每一行结果都是根实体的不同实例。您应该使用
不同的根实体
这意味着每一行结果都是根实体的一个独特实例。非常感谢。这是唯一的办法吗?或者注释和/或参数标签是否定义默认值?您也可以使用选择。这可能会导致在您的数据库上执行额外的查询,尽管这可能并不理想。非常感谢。这是唯一的办法吗?或者注释和/或参数标签是否定义默认值?您也可以使用选择。这可能会导致在数据库上执行额外的查询,尽管这样做可能并不理想。