2013-10-10 36 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%" 
相关问题