繁体   English   中英

用于显示和CRUD操作的实体类

[英]Entity class for display and for CRUD operation

我正在使用Hibernate 4.1.0和JPA 2.0

我有一个像下面这样的实体类

@Entity
@Table(name = "V_EMPLOYEES")
public class Employee {

        @Id
        @Column(name = "EMPLOYEENUMBER")
        private String employeeNumber;

        @Column(name = "EMPLOYEENAME")
        private String employeeName;

        @Column(name = "DEPARTMENT")
        private String dept;

/ *以上的吸气器和设置器* /

.....

@Table(name = "V_EMPLOYEES")在这里V_EMPLOYEES是一个view ,在此view ,我使用它从查找表中获取employeename并与employeeno V_EMPLOYEES

我使用上面的方法在数据表中显示值,并且工作正常。

我想在用户单击“添加”按钮和一个弹出对话框(用户输入employeenumberemployeestatusemployeedepartment等)时创建一个新的雇员记录。

当我在Entity类中使用view时,如果要创建新的雇员记录,是否应该创建可更新的数据库view或创建对Employee表的新Entity类引用? 如果出于查看目的,我有一些列不在数据表中,而又想用于创建或更新记录,该怎么办?

最佳方法和最佳做法是什么?

我正在使用EntityManager进行数据提取和持久化(插入,更新和删除)

任何帮助都是非常明显的

鉴于这些要求,我将维护两个单独的实体,并将公共字段推入映射的超类中:

@MappedSuperclass
public abstract class AbstractEmployee {
    @Id
    @Column(name = "EMPLOYEENUMBER")
    private String employeeNumber;

    @Column(name = "EMPLOYEENAME")
    private String employeeName;

    @Column(name = "DEPARTMENT")
    private String dept;

    // Constructor, getters, setters
}

@Entity
@Table(name = "V_EMPLOYEES")
public class ReadOnlyEmployee extends AbstractEmployee {
}

@Entity
@Table(name = "EMPLOYEES")
public class Employee extends AbstractEmployee {
    // Extra mappings here
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM