2016-10-10 3 views
0

Ich möchte untergeordnete Datensätze basierend auf der PId abrufen, die Fremdschlüssel in untergeordneten Tabelle ist.Abrufen von untergeordneten Datensätzen basierend auf der PId, die Fremdschlüssel in der übergeordneten Tabelle ist - Spring/Hibernate

Geordnete Tabelle

PId  Name 
1  Nish 
2  Bish 
3  Tish 

Child Table

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

geordnete Entität

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

    private Integer PId; 
    private String name; 

    //getter and setters 

} 

Kinder Enity

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

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

    //getter and setters 

} 

Ich möchte alle untergeordneten Datensätze basierend auf PId in Child-Tabelle vorhanden sein. Ich möchte keine übergeordneten Datensätze abrufen. Ich habe eine Sammlung von PIds.

Vielen Dank im Voraus

Antwort

0

Sie Kriterien erstellen und alle Kinder holen die Eltern-ID wie folgt hat:

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(); 
} 

Sie die Hibernate-Session Fabrik autowired sollten, wenn Sie Feder verwenden, oder Sie sollten öffnen Sitzung allein.

+0

Dank @Burask. Es hat mir sehr geholfen. Es hat für mich funktioniert. –

+0

Sie sind willkommen @Ankurjain Wenn Sie wollen, können Sie als richtig markieren, damit andere auch verstehen, dass es funktioniert. –

Verwandte Themen