当前位置: 首页 > 面试题库 >

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

端木安国
2023-03-14
问题内容

我正在使用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匹配…

请帮助我完成我的工作…

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


问题答案:

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

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

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

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



 类似资料:
  • 我正在使用Spring和Hibernate与MySQL开发应用程序。我是Hibernate的新手,完成了基本任务... 现在,我需要在选择查询中应用连接,以使用注释从多个表中获取数据。我已经找过了,但还是不知道。。。 这里是我的数据库表和bean类: 我的bean类是: 员工信息orm.java 员工登录orm.java 要求: 当empid在两个表上匹配时,我想从employee\u info和

  • 我对Spring中的原生查询有一个问题。我在param value中使用了带有参数nativequery=true注释@query和SQL查询。 而在RezerWacjamanager.java中: 问题是什么时候调用方法RezerWacjadao.getDoStepnosCnatypy(dataOd,dataDo)并执行此查询。我得到一个错误错误: DoStepNosCtypyListdTo.j

  • 我正在使用注释处理器来处理方法参数的注释。 用于参数的注释类型有一个注释@参数 现在,当注释处理器运行时,我想检查参数注释()是否有参数注释。我通过执行以下代码来实现这一点。 由于某种原因,arg始终为空。是否有注释未返回的原因?

  • 我正在使用spring boot 2.1.7.Release和spring-kafka 2.2.7.Release.并且我正在使用@KafKalistener注释来创建一个消费者,并且我正在使用消费者的所有默认设置。 根据apache kafka文档,'max.poll.records'的默认值是500。 在这里,我试图理解spring是如何处理记录处理的。现在我的问题是,如果我们已经在主题a上发

  • 问题内容: 我的Java应用程序每10秒向mysql服务器查询一次。 我手动将新行插入表中。 而且Hibernate找不到它。 同样,当我手动删除一行时,Hibernate显示该行存在。 我建议这是因为Hibernate缓存。 有什么办法可以禁用它吗? 谢谢! 问题答案: 您是指一级缓存还是二级缓存?使用诸如Ehcache之类的Hibernate二级缓存来缓存与您手动修改的同一表中的行相对应的实体