0

有一个@MappedSuperClass SomeClass(参见下面的最小示例),是否可以覆盖扩展中的@Pattern通孔?@AttributeOverrideSomeOtherclassSomeClass

@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为继承的类定义一个新的?

4

1 回答 1

1

这是不可能的。@AttributeOverride 和 @Pattern 注释不是同一规范的一部分。

@AttributeOverride是 JPA 规范的一部分,允许您覆盖实体子类中属性的列定义。

@Pattern是 bean 验证 (JSR 303) 规范的一部分,允许您指定正则表达式来匹配带注释的成员。您不能覆盖 @Pattern 注释,但可以在子类中累积应用新模式,假设您正在注释您的方法而不是您的字段。

看到这个有点相关的答案

于 2012-05-23T15:55:27.990 回答