通用实体,超类:
@MappedSuperclass public abstract class GenericEntity { private Integer id; public Integer getId() {return id;} public void setId(Integer id) {this.id = id;} }
pojo:
@Entity @Table(name = "POJO_ONE") @SequenceGenerator(name = "HB_SEQ_POJO_ONE", sequenceName = "SEQ_POJO_ONE", allocationSize = 1) public class PojoOne extends GenericEntity { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "HB_SEQ_POJO_ONE") @Column(name = "ID") @AttributeOverride(name = "id", column = @Column(name = "ID")) private Integer id; @Override public Integer getId() {return id;} }
我尝试使用那些注释:@ AttributeOverride,@ Id等,但是它不起作用。你能帮助我吗?我想覆盖属性“ id”以通过pojo / table指定另一个列名和一个序列。最好的方法是什么?
试试这个,代替
@MappedSuperclass public abstract class GenericEntity { private Integer id; ... public Integer getId() {return id;} public void setId(Integer id) {this.id = id;} } @Entity @Table(name = "POJO_ONE") @SequenceGenerator(name = "HB_SEQ_POJO_ONE", sequenceName = "SEQ_POJO_ONE", allocationSize = 1) @AttributeOverride(name = "id", column = @Column(name = "ID")) public class PojoOne extends GenericEntity { // we should not define id here again ... @Override @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "HB_SEQ_POJO_ONE") public Integer getId() {return id;} }