我想使用可能相同的实体类中的内连接来处理从另一个表获取的列
我的实体类
@Entity
@Table(name="EMP")
public class Employee{
@Id
@Column(name="EmpId",length = 2, nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long EmpId;
@Column(name="EmpName", nullable = false)
private Long EmpName;
@Column(name="EmpSalary", nullable = false)
private Long EmpSalary;
@Column(name="EmpPf", nullable = true)
private Long EmpPf;
/*also have getter setter*/
}
@Table(name="EMPPF")
public class Employee{
@Id
@Column(name="EmpPfId",length = 2, nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long EmpPfId;
@Column(name="EmpPfInfo", nullable = false)
private Long EmpPfInfo;
@Column(name="EmpPfAmount", nullable = false)
private Long EmpPfAmount;
@Column(name="EmpId", nullable = true)
private Long EmpId;
/*also have getter setter*/
}
我的查询是
select e.name,e.salary,ep.EmpPfInfo as EmpPf from EMP e inner join EMPPF ep on e.EmpId = ep.EmpId
如何在 Employee 实体类中映射 EmpPf 列,以便在“emp”表上运行简单查询时不会出现任何错误?
您可以使用@SecondaryTable功能来编写它:
@Entity
@Table(name="EMP")
@SecondaryTable(name = "EMPPF", pkJoinColumns = @PrimaryKeyJoinColumn(name = "EmpId"))
public class Employee{
@Id
@Column(name="EmpId",length = 2, nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long EmpId;
@Column(name="EmpName", nullable = false)
private Long EmpName;
@Column(name="EmpSalary", nullable = false)
private Long EmpSalary;
@Column(name="EmpPfInfo", table = "EMPPF")
private Long EmpPf;
/*also have getter setter*/
}