Hibernate HQL Query根据childID获取父+子

Jor*_*rge 7 java hibernate hql parent

我有一个具有多个@onetomany关系的对象,我需要查询父项中的属性以及子项的属性.我似乎无法完成它.

例如,我需要一个查询,让我看到父对象,其中父级的名称是"John" ,而孩子的最喜欢的颜色是蓝色.希望有道理.复杂化的原因似乎是儿童在列表中,而不是在@onetoone关系中.

PARENT:
@Entity
@Table(name="Parent")
public class Parent {
    @Id
    @Column(name="ID")
    @GeneratedValue(strategy=GenerationType.AUTO, generator="parent_gen")
    @SequenceGenerator(name="parent_gen", sequenceName="PARENT_SEQUENCE")
    private int parentID;

    @Column(name="name")
    private String name;

    @OneToMany(cascade=CascadeType.ALL)
    @OrderBy("name ASC")
    @JoinTable(name = "parent_to_child")
    private List<Child> childList;
    // and so forth

Child 
@Entity
@Table(name="Child")
public class Child{
    @Id
    @Column(name="ID")
    @GeneratedValue(strategy=GenerationType.AUTO, generator="child_gen")
    @SequenceGenerator(name="child_gen", sequenceName="CHILD_SEQUENCE")
    private int childID;

    @Column(name="favoriteColor")
    private String favoriteColor;

    // and so forth
Run Code Online (Sandbox Code Playgroud)

Pab*_*blo 6

select p from Parent p join p.childList c
    where p.name = 'John' and c.favoriteColor = 'blue'
Run Code Online (Sandbox Code Playgroud)

这将返回一个List<Parent>.

您可以在hql参考中查看所有这些内容