Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.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 休眠:通过@AttributeOverride覆盖@Pattern_Java_Hibernate - Fatal编程技术网

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注释,但可以在子类中累积应用新模式,前提是您正在注释方法而不是字段

看这个