2013-10-10 32 views
0

我有兩個表:組織(家長)和部門(兒童)。如何使用父表ID獲取子錶行?

存在一對多關係,僅在組織表中提及。

@Entity 
@Table(name="TBL_STD_ORGANIZATION") 
public class Organization implements Serializable { 
    @Id 
    @GeneratedValue 
    @Column(name="FLD_ORG_ID") 
    private Long organizationId; 

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

    @OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER) 
    private java.util.List<Department> listOfDepartMents = new java.util.ArrayList<Department>(); 
} 

下面是部門級:在父表

@Entity 
    @Table(name="TBL_STD_DEPARTMENT") 
    public class Department implements Serializable { 

    @Id 
    @GeneratedValue 
    @Column(name = "FLD_DEPARTMENT_ID") 
    private Long departmentId; 

    @Column(name = "FLD_DEPARTMENT_NAME") 
    private String departmentName; 
    } 

我寫了關係,因爲它的休眠創建第三個表。 現在,我必須檢索部門以「sa」關鍵字開頭並在特定組織中。 所以我想要HQL或SQL查詢查詢。我不知道如何編寫這樣複雜的查詢。 有什麼建議嗎?

+0

所以你說,有它映射部門和組織之間的關係,第三個表? – Zeus

回答

1

我相當肯定的HQL/JPQL是:

SELECT d FROM Organization o JOIN o.listOfDepartMents d WHERE d.departmentName LIKE "sa%" 
相關問題