查询从表中获取数据,列表字段的限制映射为多对多关系

时间:2016-12-09 06:04:15

标签: sql database hibernate spring-mvc detachedcriteria

请帮助我使用hibernate模板或分离条件查询,从表Clause中获取数据。它有一组部门表(多对多关系)。现在,我只需要列出与任何部门列表相关的子句列表 - 列表deptIdList(这是输入参数)。我可以使用SQL本机查询获得所需的结果,但我想使用hql或分离的条件查询来实现结果。

public class Clause {
  @Id
  @GeneratedValue
  @Column(name = "CLAUSE_ID")
  private Long clauseId;

  @Column(name = "REG_REFERENCE")
  private String regulatoryReference;

  @Column(name = "REG_REQ")
  private String regulatoryRequirement;

  @Column(name = "REQ_IMP_RATING")
  private String reqImpactRating;

  @ManyToMany(fetch=FetchType.EAGER)
  @JoinTable(name = "EWMS_CLAUSE_DEPT", 
     joinColumns = { @JoinColumn(name = "CLAUSE_ID", nullable = false, updatable = false) }, 
     inverseJoinColumns = { @JoinColumn(name = "DEPT_ID", nullable = false, updatable = false) }
  )
  private Set<Department> departmentListForClause;

  @Column(name = "CLAUSE_KEY_ACT")
  private String keyActivity;

  @Column(name = "CLAUSE_TOPIC")
  private String clauseTopic;

  @Column(name = "CLAUSE_KEY_WORDS")
  private String clauseKeywords;

  @ManyToOne(fetch = FetchType.LAZY)
  @JoinColumn(name = "REG_ID")
  private RegulationDetails regulation;

  //getter setter methods
}

public class Department {
  @Id
  @GeneratedValue
  @Column(name = "DEPT_ID")
  private Long departmentId;

  @Column(name = "DEPT_NAME")
  private String departmentName;

  @Column(name = "TIER1_ID")
  private String tierId;

  @ManyToMany(/*fetch = FetchType.LAZY,*/ mappedBy = "regulatoryDepartments")
  private Set<RegulationDetails> regulationListForDepartment;

  @ManyToMany(/*fetch = FetchType.LAZY, */mappedBy = "departmentListForClause")
  private Set<Clause> clauseListForDepartment;

  //getter setter methods
}

0 个答案:

没有答案