我有两个表:组织(父级)和部门(子级)。
存在一对多关系,仅在组织表中提及。
@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;
}
我在父表中写入了关系,因为它 Hibernate 创建了第三个表。 现在,我必须检索以“sa”关键字开头且处于特定组织中的部门。 所以我想要HQL或者SQL查询查询。我不明白如何编写如此复杂的查询。 有什么建议吗?
最佳答案
我相当确定 HQL/JPQL 会是:
SELECT d FROM Organization o JOIN o.listOfDepartMents d WHERE d.departmentName LIKE "sa%"
关于java - 如何使用父表ID获取子表行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19299032/