Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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 同名的私有回调方法_Java_Hibernate_Jpa_Eclipselink_Lifecycle - Fatal编程技术网

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规范规则,您的代码必须遵守这两套规则