2016-10-10 59 views
0

我想根據子表中的外鍵PId獲取子記錄。獲取基於父表中外鍵的PId的子記錄 - Spring/Hibernate

父表

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 

} 

兒童Enity

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

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

    //getter and setters 

} 

我想在Child表中獲取基於PId的所有子記錄。不想獲得父母記錄。我收集了PIds。

在此先感謝

回答

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的Session的工廠,或者你應該打開會議由你自己。

+0

謝謝@Burask。這幫助了我很多。這對我很有用。 –

+0

不用@Ankurjain如果你想要的話,你可以標記爲正確的,這樣其他人也可以理解它的作用。 –