如何使用内连接查询处理列获取

问题描述 投票:0回答:1

我想使用可能相同的实体类中的内连接来处理从另一个表获取的列

我的实体类

@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”表上运行简单查询时不会出现任何错误?

java spring-boot hibernate multiple-columns
1个回答
0
投票

您可以使用@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*/
}
© www.soinside.com 2019 - 2024. All rights reserved.