我正面临一种我不理解的奇怪行为。事实上,我有一个 DAO AbstractFacade,我在其中注入了一个 EntityManager。我从这个抽象类派生了许多子类。首先,该项目没有正常工作,导致许多异常。然后我从错误消息中注意到我在让 EntityManager 执行持久性工作时遇到了问题。这很奇怪,因为我在抽象类中有一个 getter,它返回
entityManager.
public class AbstractFacade<T> {
private EntityManager em;
private Class<T> entityClass;
protected EntityManager getEntityManager() {
return em;
}
public AbstractFacade(Class entityClass){
this.entityClass = entityClass;
}
所以我想知道为什么它不在子类中工作?我有一个想法来覆盖解决问题的方法并且不再有异常!
@Stateless
@LocalBean
public class AirportFacade extends AbstractFacade<Airport> implements AirportFacadeLocal{
@PersistenceContext(unitName = "flams_pu")
private EntityManager em;
public AirportFacade(){
super(Airport.class);
}
@Override
public EntityManager getEntityManager(){
return em;
}
到目前为止还不错,但我不满意,因为我无法弄清楚为什么在覆盖 getter 之前它不起作用?
所以,如果有人知道为什么,请告诉我,非常感谢。