如何在子类中重写@annotations(javax.validation)

时间:2015-12-18 15:30:46

标签: java hibernate spring-mvc jpa

我有这个Entity,这是一个超类:

@Entity
public class Father implements Serializable{    

    @Column(name = "name")
    @Size(min=1, max=10)
    @Pattern(regexp="^[A-Za-z ]*$")
    @NotNull
    private String name;

}

这一个,扩展了上面的那个:

@Entity    
public class FatherSub extends Father implements Serializable{  

    private String name;

}

正如您所见,FatherSub我没有@Annotations,我不想要它们。 我怎样才能覆盖它们?有办法吗?

似乎注释@NotNull在子类中持续存在并要求我填写 你可以在这两张Eclipse版画画面中看到Father.name(不是FatherSub.name)。

enter image description here enter image description here

谢谢

1 个答案:

答案 0 :(得分:1)

注释(仅代表某些特定时间段的某些元信息)在拥有子类时不会过写。

在您的示例中,onCreate()成员隐藏 FatherSub#name成员。这意味着Father#name的所有实例都将与FatherSub中定义的name一起使用,如果未使用FatherSub进行注释,则不会代表@Column @Column注释

此外,您无需在Serializable中明确实施FatherSub,因为Father已经实现了它。