0

我正在使用 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;

/* 上面的 getter 和 setter */

... ..

@Table(name = "V_EMPLOYEES")V_EMPLOYEESview我使用它employeename从我的查找表中获取并加入的地方employeeno

我使用上面的方法在数据表中显示值并且效果很好。

当用户单击添加按钮和用户输入的弹出对话框时,我想创建一个新的员工记录employeenumber,等。employeestatusemployeedepartment

当我viewEntity课堂上使用 a 时,如果我想创建一个新的员工记录,我应该创建一个view可以更新的数据库还是创建一个Entity对表的新类引用Employee?如果我有不属于数据表的列用于查看目的,并且我想用于创建或更新记录怎么办?

对此的最佳方法和最佳实践是什么?

EntityManager用于数据获取和持久化(插入、更新和删除)

任何帮助都是高度可观的

4

1 回答 1

1

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

@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
}
于 2013-02-23T10:34:19.407 回答