java - 如何使用父表ID获取子表行?

标签 java hibernate

我有两个表:组织(父级)和部门(子级)。

存在一对多关系,仅在组织表中提及。

@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/

相关文章:

spring - 断言失败 : Transaction MARKED_FOR_JOINED after isOpen() call

java - 右连接 JPA 查询无法获得准确的输出

java - Hibernate的这种分页机制有什么问题呢?

java - 使用 RecyclerView 动态绑定(bind)简单待办事项列表中的列表项

java - ImageView 只能工作一次

hibernate - 保存后如何获取数据库生成的非id列

Hibernate:什么时候需要实现 equals() 和 hashCode(),如果需要,如何实现?

java - 泛型和 Class.forName

java - android studio 3 (linux pc) java 1.8 上的 API 22 5.1 sdk 设备

java - HttpSessionAttributeListener 是否异步处理?