为什么我们必须在映射类上使用@entity批注以通过JPA调用存储过程?

时间:2018-09-24 17:24:54

标签: java hibernate spring-boot jpa hibernate-mapping

在Spring引导项目中,我正在调用存储过程,该过程使用Select语句返回结果集。这些Select语句返回未与任何表列绑定的计算字段。

我想将结果集映射到不是实体的类,但是看起来我们必须使用@entity批注,没有它,映射将无法工作。

将类声明为@entity是否会引起任何不必要的问题,或者即使我们不想从该实体创建表,也仅仅是JPA的强制性注释吗?

下面是我的代码,映射正常工作。

@NamedStoredProcedureQueries({
        @NamedStoredProcedureQuery(
                name = "SP_GetEmployee",
                procedureName = "SP_GetEmployee",
                resultClasses = EmployeeData.class,
                parameters = {
                        @StoredProcedureParameter(mode = IN, name = "name", type = String.class)
                }
        )})
@Entity
public class EmployeeData {

    private int employeeNo;

    private String name;    

    @Id
    @Column(name = "employeeNo")
    public int getEmployeeNo() {
        return employeeNo;
    }

    public void setEmployeeNo(int employeeNumber) {
        this.employeeNo = employeeNumber;
    }

    @Basic
    @Column(name = "name")
    public String getEmployeename() {
        return name;
    }

    public void setEmployeename(String name) {
        this.name = name;
    }
}

0 个答案:

没有答案