Java 同名的私有回调方法
我发现 允许类重写相同回调类型的继承回调方法,在这种情况下,不会调用被重写的方法Java 同名的私有回调方法,java,hibernate,jpa,eclipselink,lifecycle,Java,Hibernate,Jpa,Eclipselink,Lifecycle,我发现 允许类重写相同回调类型的继承回调方法,在这种情况下,不会调用被重写的方法 @MappedSuperclass 班级家长{ @预科生 受保护的void _PrePersist(){/Java类不会自动继承批注。在这种情况下,JPA规范声明@PrePersist批注可以由子级继承-这是由JPA提供程序(而不是虚拟机)处理的实现细节。因此,在您的情况下,实际上可以删除子类中的@PrePersist注释: @Entity class Child { @Override prote
@MappedSuperclass
班级家长{
@预科生
受保护的void _PrePersist(){/Java类不会自动继承批注。在这种情况下,JPA规范声明@PrePersist
批注可以由子级继承-这是由JPA提供程序(而不是虚拟机)处理的实现细节。因此,在您的情况下,实际上可以删除子类中的@PrePersist
注释:
@Entity
class Child {
@Override
protected void _PrePersist() {
super._PrePersist();
}
}
现在,不管JPA提供程序是否允许继承@PrePersist
注释,所有Java语言规则都将完全应用。在这种情况下,您无法覆盖子类中超类的私有方法-这在Java规范中是不允许的,因此,当然对JPA不起作用要么
实际上,这里有两套规则在起作用,JPA规则和Java规范规则,您的代码必须同时遵守这两套规则。Java类不会自动继承注释。在这种情况下,JPA规范规定,@PrePersist
注释可以由子级继承-这是一个实现细节ats由JPA提供商(而不是虚拟机)处理。因此,在您的情况下,您实际上可以删除子类中的@PrePersist
注释:
@Entity
class Child {
@Override
protected void _PrePersist() {
super._PrePersist();
}
}
现在,不管JPA提供程序是否允许继承@PrePersist
注释,所有Java语言规则都将完全应用。在这种情况下,您无法覆盖子类中超类的私有方法-这在Java规范中是不允许的,因此,当然对JPA不起作用要么
实际上,这里有两套规则,JPA规则和Java规范规则,您的代码必须遵守这两套规则