在我们的应用程序中,有一个实体类具有带有@Version批注的属性(私有长版),并且有很多类 扩展此实体。我们实现了版本控制以处理乐观锁定。 但是在那些子类之一中,我们不需要该功能。 所以我的问题是如何覆盖子类中的功能?
代码:
Employee.java:
@MappedSuperclass
class Employee {
@Id
@Column(name = "EMP_ID")
private int id;
@Column(name = "EMP_NAME")
private String name;
@Version
@Column(name = "VERSION")
private long version
//setters and getters
}
PermEmployee.java:
@Entity
@Table(name = "PERM_EMP")
class PermEmployee extends Employee {
@Column(name = "SAL")
private long salary;
//setters and getters
}
当前,PERM_EMP表还具有VERSION列,并且每次我们不希望对PERM_EMP表进行更新时,其列就会递增。 请帮助我解决此问题。
答案 0 :(得分:0)
尝试attributeOverride:
@AttributeOverride(name = "version", column = @Column(name = "perm_version", insertable = false, updatable = false)
public class PermEmployee extends Employee{
}
此处有更多信息:https://docs.jboss.org/hibernate/jpa/2.1/api/javax/persistence/AttributeOverride.html