【问题标题】:Hibernate: overwrite @Pattern via @AttributeOverrideHibernate:通过@AttributeOverride 覆盖@Pattern
【发布时间】:2012-05-23 15:25:37
【问题描述】:

如果有一个@MappedSuperClass SomeClass(请参阅下面的最小示例),是否可以通过@AttributeOverride 在扩展SomeClassSomeOtherclass 中覆盖@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 {

    ….

}

或者有没有其他方法可以为继承的类定义一个新的@Pattern

【问题讨论】:

    标签: java hibernate


    【解决方案1】:

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

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

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

    看到这个somewhat related answer

    【讨论】:

      猜你喜欢
      • 2015-01-07
      • 2017-06-19
      • 2021-06-26
      • 1970-01-01
      • 2013-12-10
      • 1970-01-01
      • 2010-09-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多