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 Validation(JSR 303)仕様の一部であり、注釈付きメンバーと一致する正規表現を指定できます。@Patternアノテーションをオーバーライドすることはできませんが、フィールドではなくメソッドにアノテーションを付けることを前提として、サブクラスに新しいパターンを累積的に適用できます。

このやや関連性のある回答を参照してください。

于 2012-05-23T15:55:27.990 に答える