見つけた
クラスは、同じコールバック タイプの継承されたコールバック メソッドをオーバーライドできます。この場合、オーバーライドされたメソッドは呼び出されません。
@MappedSuperclass
class Parent {
@PrePersist
protected void _PrePersist() { // <--+
} // |
} // |
// |
@Entity // |
class Child { // |
@PrePersist // |
@Override // |
protected void _PrePersist() { // |
super._PrePersist(); // ---------+
}
}
質問: プライベート スコープはどうですか?
コールバック メソッドは、パブリック、プライベート、保護、またはパッケージ レベルのアクセスを持つことができますが、静的または最終であってはなりません。
@MappedSuperclass
class Parent {
@PrePersist
private void _PrePersist() {
// not invoked.
// is this method still, technically, 'overridden'?
}
}
@Entity
class Child {
@PrePersist
private void _PrePersist() {
// no way to invoke super._PrePersist().
// is this method still, technically, 'overriding' the parent's?
}
}
この場合、Parent#_PrePersist()
呼び出されません。これは正常ですか?
私はEclipseLinkとHibernateでテストしました