Java 休眠:通过@AttributeOverride覆盖@Pattern
拥有一个Java 休眠:通过@AttributeOverride覆盖@Pattern,java,hibernate,Java,Hibernate,拥有一个@MappedSuperClass SomeClass(参见下面的一个最小示例),是否可以通过扩展SomeClass的@AttributeOverride中的@AttributeOverride覆盖@Pattern @MappedSuperClass public abstract class SomeClass { @Column(name = "NAME", length = 255, unique = false, nullable = true) @Pattern(regex
@MappedSuperClass SomeClass
(参见下面的一个最小示例),是否可以通过扩展SomeClass
的@AttributeOverride
中的@AttributeOverride
覆盖@Pattern
@MappedSuperClass
public abstract class SomeClass {
@Column(name = "NAME", length = 255, unique = false, nullable = true)
@Pattern(regex = "([a-zA-Z0-9]+_)*([a-zA-Z0-9]+)")
private String name;
…
}
@AttributeOverride(name = "name", column = @Column(name = "NAME", length = 20, unique = false, nullable = false))
public class SomeOtherClass extends SomeClass {
….
}
或者有没有其他方法可以为继承的类定义新的
@模式?这是不可能的。@AttributeOverride和@Pattern注释不是同一规范的组成部分
@AttributeOverride是JPA规范的一部分,允许您覆盖实体子类中属性的列定义
@模式是bean验证(JSR303)规范的一部分,它允许您指定正则表达式来匹配带注释的成员。您不能重写@Pattern注释,但可以在子类中累积应用新模式,前提是您正在注释方法而不是字段
看这个