一尘不染

如何处理带有注释的Hibernate和Spring中的联接查询?

hibernate

我正在使用Spring和Hibernate和MySQL开发应用程序。我是Hibernate的新手,做了基本任务…

现在,我需要在选择查询中应用联接,以使用注释从多个表中获取数据。我已经搜寻过,但仍然不知道…

这是我的数据库表和bean类:

Table 1: 'employee_info' ( id, empid, empname, doj and jobtitle )

Table 2: 'employee_login' ( username, password, status and empid )

我的bean类是:

EmployeeInfoForm.java

@Entity()
@Table(name = "employee_info")
public class EmployeeInfoForm {

@Id
@GeneratedValue
@Column(name = "id", unique = true, nullable = true)
private int id;

@Column(name = "empId")
private int empId;

@Column(name = "empname")
private String empName;

@Column(name = "doj")
private Date empDoj;

@Column(name = "jobtitle")
private String empJobTitle;

public int getEmpId() {
    return empId;
}

public void setEmpId(int empId) {
    this.empId = empId;
}

public void setEmpDoj(Date empDoj) {
    this.empDoj = empDoj;
}

public String getEmpName() {
    return empName;
}

public void setEmpName(String empName) {
    this.empName = empName;
}

public Date getEmpDoj() {
    return empDoj;
}

public void setEmp_Doj(Date empDoj) {
    this.empDoj = empDoj;
}

public String getEmpJobTitle() {
    return empJobTitle;
}

public void setEmpJobTitle(String empJobTitle) {
    this.empJobTitle = empJobTitle;
}


}

EmployeeLoginForm.java

@Entity()
@Table(name = "employee_login")
public class EmployeeLoginForm {

@Id
@Column(name = "username")
private String empUserName;

@Column(name = "password")
private String empPassword;

@Column(name = "status")
private String empStatus;

@Column(name = "empid")
private int empId;

public String getEmpUserName() {
    return empUserName;
}

public int getEmpId() {
    return empId;
}

public void setEmpId(int empId) {
    this.empId = empId;
}

public void setEmpUserName(String empUserName) {
    this.empUserName = empUserName;
}

public String getEmpPassword() {
    return empPassword;
}

public void setEmpPassword(String empPassword) {
    this.empPassword = empPassword;
}

public String getEmpStatus() {
    return empStatus;
}

public void setEmpStatus(String empStatus) {
    this.empStatus = empStatus;
}

}

需求:

我想选择字段 EMPID,empname,JOBTITLEemployee_info 和现场 状态
employee_login 表当两个表上EMPID匹配…

请帮助我完成我的工作…

任何建议和指导表示赞赏…


阅读 226

收藏
2020-06-20

共1个答案

一尘不染

当您谈论使用select语句执行联接时,您正在考虑使用数据库/纯SQL术语。Hibernate的功能(和危险)在于它使您摆脱了这种束缚,并使您以“对象”的方式思考。您需要的是两个对象之间的关系,然后让Hibernate处理该关系。

我建议您花一些时间阅读以下内容:

http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/associations.html

以便更好地了解Hibernate如何提供帮助。

2020-06-20