Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 仅在子类上为列添加唯一约束_Java_Hibernate_Jpa_Persistence - Fatal编程技术网

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。