拥有@MappedSuperClass SomeClass
(请参见下面的最小示例),是否可以在@Pattern
@AttributeOverride
中覆盖SomeOtherclass
SomeClass
?
@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 {
….
}
或者还有其他方法可以为继承的类定义新的@Pattern
吗?
答案 0 :(得分:1)
这是不可能的。 @AttributeOverride和@Pattern注释不是同一规范的一部分。
@AttributeOverride 是JPA规范的一部分,允许您覆盖实体子类中属性的列定义。
@Pattern 是bean验证(JSR 303)规范的一部分,允许您指定正则表达式以匹配带注释的成员。您不能覆盖@Pattern注释,但是您可以在子类中累积应用新模式,假设您要注释方法而不是字段。