根据父表中的外键PId获取子记录 - Spring / Hibernate

时间:2016-10-10 14:10:47

标签: spring hibernate

我希望根据子表中的外键PId获取子记录。

父表

PId     Name
1       Nish
2       Bish
3       Tish

儿童表

CId     PId     Name
1       1       ABC
2       1       DEF
3       2       XYZ

家长实体

@Entity
@Table(name="parent")
public class Parent {

    private Integer PId;
    private String name;

    //getter and setters

}

儿童恩惠

@Entity
@Table(name="child")
public class Child {

    private Integer CId;
    private String name;
    @ManyToOne
    private Parent parent;

    //getter and setters

}

我想在Child表中找到基于PId的所有子记录。不想获得父记录。我收集了PIds。

提前致谢

1 个答案:

答案 0 :(得分:0)

您可以创建条件并获取父ID如下所有的孩子:

public List<Child> getChildsOfParent(Integer parentId) {
       Session session = this.sessionFactory.getCurrentSession();
       Criteria cr = session.createCriteria(Child.class);
       cr.add(eq("parent.id", parentId));
       return (Child)cr.list();
}

如果你使用spring,你应该自动连接hibernate会话工厂,或者你应该自己打开会话。