Customer、Request などのテーブルがあり、それぞれに 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