Java 仅在子类上为列添加唯一约束
我有一个定义名称列的超类:Java 仅在子类上为列添加唯一约束,java,hibernate,jpa,persistence,Java,Hibernate,Jpa,Persistence,我有一个定义名称列的超类: @MappedSuperclass public class SuperClass { @Basic private String name; } 有很多具体的@Entity子类扩展了它,但对于其中一个,我想在name列上添加一个唯一的约束。我不能只在超类上添加@Column(unique=true),因为这并不适用于它的所有子类 如何将子类中的名称列重新定义为唯一的?(注意:我的模型映射字段,而不是getter方法)在子类上尝试@AttributeOv
@MappedSuperclass
public class SuperClass {
@Basic
private String name;
}
有很多具体的@Entity子类扩展了它,但对于其中一个,我想在name列上添加一个唯一的约束。我不能只在超类上添加@Column(unique=true)
,因为这并不适用于它的所有子类
如何将子类中的名称列重新定义为唯一的?(注意:我的模型映射字段,而不是getter方法)在子类上尝试@AttributeOverride(name=“name”,column=@column(name=“new\u name”,unique=true)。然后,对于映射子类的表,必须在db中将列“name”更改为“new\u name”。谢谢。我尝试了
@表(uniqueConstraints=…)
之前的方法不起作用。@AttributeOverride
起作用,我不必更改列名:@AttributeOverride(name=“name”,column=@column(name=“name”,unique=true))
是的,我也这么认为,但我不确定。这对你有好处谢谢;我有完全相同的问题,我只是根据你的建议解决了它;+1。