0
我有海誓山盟相關的如下標準retriving數據涉及多個聯接
員工
EMP_ID|EMP_NAME
---------------
101 |John
EmployeeDtl樣本數據的四個表
EMP_DTL_ID |EMP_SKILLS |EMP_ID
-----------------------------------
1001 |Java |101
1002 |SQL |101
EmpDeptDtl
EMP_DTL_ID |DEPT_ID
--------------------
1001 |22
1002 |33
部門
DEPT_ID |DEPT_NAME
----------------------
22 |XYZ
33 |PQR
下面是我相應的POJO現在
@Entity
public class Employee {
private static final long serialVersionUID = 1L;
@Id
@Column(name="EMP_ID")
private Long empId;
@Column(name="EMP_NAME")
private String empName;
//bi-directional many-to-one association to EmployeeDtl
@OneToMany(mappedBy="employee", cascade=CascadeType.ALL, fetch=FetchType.EAGER)
private Set<EmployeeDtl> empDtls;
@Entity
@Table(name="EMP_DTL")
public class EmployeeDtl {
@Id
@Column(name="EMP_DTL_ID")
private Long empDtlId;
@Column(name="EMP_GRP")
private String employeeGrp;
//bi-directional many-to-one association to Employee
@ManyToOne
@JoinColumn(name="EMP_ID")
private Employee employee;
@Column(name="EMP_ID", insertable=false, updatable=false)
private Long empId;
//bi-directional many-to-one association to EmpDeptDtl
@OneToMany(mappedBy="id.empDtlId", cascade= CascadeType.ALL)
private Set<EmpDeptDtl> empDeptDtls;
@Entity
public class EmpDeptDtl {
@EmbeddedId
private EmpDeptDtlPK id;
@Column(name="EMP_DTL_ID", insertable = false, updatable = false)
private Long empDtlId;
//bi-directional many-to-one association to Dept
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="DEPT_ID", insertable = false, updatable = false)
private Dept deptId;
@Embeddable
public class EmpDeptDtlPK implements Serializable {
//default serial version id, required for serializable classes.
private static final long serialVersionUID = 1L;
@Column(name="DEPT_ID")
private Long deptId;
//bi-directional many-to-one association to EmpDeptDtl
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="EMP_DTL_ID")
private EmployeeDtl employeeDtl;
@Entity
public class Dept {
@Id
@Column(name = "DEPT_ID")
private Long deptId;
@Column(name = "DEPT_NAME")
private String deptName;
// bi-directional many-to-one association to EmpDeptDtl
@OneToMany(mappedBy = "deptId")
private Set<EmpDeptDtl> empDeptDtls;
,任何人都可以建議我如何檢索部門記錄列表使用給定的EMP_ID CRITERIA。在給出的上述示例數據中,對於EMP_ID = 101,應該返回具有dept_id 22和33的dept記錄。
我得到了使用命名查詢和本地SQl查詢的解決方案。但是我並沒有通過休眠的CRITERIA。任何人都可以在這幫助我嗎?
感謝 哈里什
但是這會返回Dept對象列表嗎?因爲,我需要檢索Employee表 – user1466661
中給定EMP_ID的Dept記錄列表,因此您需要修改您的投影! – Baz1nga
你可以讓我知道如何做到這一點? – user1466661