I had tables like Customer, Request and so on and each had ID field; I have now an abstract @MappedSuperclass instead that have
@Id
@GeneratedValue
private Long id
field, and all tables extends it with
@AttributeOverride(name="id", column=@Column(name="ID_CUSTOMER")
. but now, when I'm trying to add customer to a table, I'm getting exception: Column ID_Customer cannot accept Null value.
when each table had it's own id fields, all works fine.
what's wrong?
Thanks
@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