Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 没有继承id字段的JPA内部字段_Java_Hibernate_Jpa - Fatal编程技术网

Java 没有继承id字段的JPA内部字段

Java 没有继承id字段的JPA内部字段,java,hibernate,jpa,Java,Hibernate,Jpa,大家好 我们通常在每个名为CREATED_BY、LAST_UPDATED_BY、CREATION_DATE、LAST_UPDATED_DATE的表中放置4个字段,因此我想为什么不将其放在单个类BaseDo中,然后将其继承到类EmployeeDo中呢。问题是如果我用@Entity注释这个BaseDo,我必须放一个我不想要的@Id字段。有没有办法做到这一点 @Entity @Inheritance(strategy=InheritanceType.TABLE_PER_CLASS) public cl

大家好

我们通常在每个名为CREATED_BY、LAST_UPDATED_BY、CREATION_DATE、LAST_UPDATED_DATE的表中放置4个字段,因此我想为什么不将其放在单个类BaseDo中,然后将其继承到类EmployeeDo中呢。问题是如果我用@Entity注释这个BaseDo,我必须放一个我不想要的@Id字段。有没有办法做到这一点

@Entity
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
public class BaseDo implements Serializable {
    private static final long serialVersionUID = 6685603264139140757L;
    @Column(name="CREATED_BY" , nullable =false )
    private String createdBy;
    @Column(name="LAST_UPDATED_BY", nullable =false )
    private String lastUpdatedBy;
    @Column(name="CREATION_DATE", nullable =false )
    private Date creationDate;
    @Column(name="LAST_UPDATED_DATE", nullable =false )
    private Date lastUpdationDate;
}


非常感谢

您应该使用@MappedSuperclass

请检查一下

@Entity
@Table(name="EMPLOYEE")
public class EmployeeDo extends BaseDo implements Serializable {

    private static final long serialVersionUID = 4465521188079217243L;
    @Id
    @Column(name="EMPLOYEE_ID" )
    private String employeeId ;
}