我有以下表格....
@Entity
@Table
public class Emp_PersonalDetails {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="EMPID")
private int id;
private String firstName;
private String middleName;
private String lastName;
private String driversLicenseNo;
private String passportNo;
@Column(columnDefinition="DATE")
private Date pportLicenseExp;
private String gender;;
private String nationality;
private String maritalStatus;
@Column(columnDefinition="DATE")
private Date dob;
@Column(columnDefinition="mediumblob")
byte[] image;
@OneToOne(mappedBy = "details", cascade = CascadeType.ALL)
private Emp_JobDetails jobDetails;
@OneToOne(mappedBy = "details", cascade = CascadeType.ALL)
private Emp_Reporting reportingDetails;
\ contrutor getters&setters
另一个......
@Entity
@Table
public class Emp_JobDetails {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "EJDID")
private int id;
private String jobTitle;
private String department;
private String status;
private String category;
private Date startDate;
private Date endDate;
private String location;
private Date joinedDate;
@Column(length=1000)
private String otherDetails;
@OneToOne
private Emp_PersonalDetails details;
\ contrutor getters&setters,最后......
@Entity
@Table
public class Emp_Reporting {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "RDID")
private int id;
private String manager;
private String reportingMethod;
private Date prDate;
private Date nextPrDate;
private String level;
@Column(length=1000)
private String comments;
@OneToOne
// @PrimaryKeyJoinColumn private Emp_PersonalDetails详细信息;
这是一个工作正常的SQL查询,但是太长了 . 如何将其更改为基于HQL或基于条件的查询?谢谢
SELECT EMPP.empid, EMPP.firstName, EMPP.middleName, EMPP.lastName, EMPJ.jobTitle,
EMPJ.status, EMPJ.department, EMPR.manager
FROM Emp_PersonalDetails EMPP
JOIN Emp_JobDetails EMPJ
ON EMPP.EMPID = EMPJ.EJDID
JOIN Emp_Reporting EMPR
ON EMPP.EMPID = EMPR.RDID
WHERE EMPP.firstName LIKE :name
OR EMPP.empid LIKE:id
1 回答
我从
Emp_Reporting
表中做了一个选择:)