我有客户、请求等表,每个都有 ID 字段;我现在有一个抽象的@MappedSuperclass,而不是
@Id
@GeneratedValue
private Long id
字段,并且所有表都使用
@AttributeOverride(name="id", column=@Column(name="ID_CUSTOMER")
. 但是现在,当我尝试将客户添加到表中时,出现异常:列 ID_Customer 不能接受 Null 值。当每个表都有自己的 id 字段时,一切正常。怎么了?谢谢
@MappedSuperclass
public abstract class GeneralEntity implements Serializable,Cloneable{
@Id
@GeneratedValue
@Column(name = "ID")
private Long id;
@Column(name = "CREATED",nullable = false)
@Temporal(TemporalType.TIMESTAMP)
private Date created;
@Column(name = "MODIFIED")
@Temporal(TemporalType.TIMESTAMP)
private Date modified;
//getters,setters
@Entity
@Table(name = "CUSTOMER")
@AttributeOverrides({
@AttributeOverride(name = "id", column = @Column(name="ID_CUSTOMER")),
@AttributeOverride(name="created", column=@Column(name="CUSTOMER_REGISTERED",nullable = false))
})
public class Customer extends GeneralEntity{
// @Column(name = "ID_CUSTOMER")
// @Id
// @GeneratedValue
// private Long id;
@Column(name = "CUSTOMER_EMAIL", nullable = false, length = 25, unique = true, updatable = true)
private String email;
@Column(name="CUSTOMER_PASSWORD", nullable = false)
private String password;
//getters setters