0
即時通訊javax.jdo.JDODetachedFieldAccessException當我想,在我的DAO實現中檢索所有我的Entites作爲列表後,請求一個atrribute對象來自我的實體。javax.jdo.JDODetachedFieldAccessException當我要求一個列表<T>使用JPA和數據存儲
public List<T> findAll() {
this.entityManager = SingletonEntityManagerFactory.get().createEntityManager();
EntityTransaction tx = this.entityManager.getTransaction();
try {
tx.begin();
return this.entityManager.createQuery(
"select f from " + clazz.getName() + " as f").getResultList();
}finally {
tx.commit();
if (tx.isActive()) {
tx.rollback();
}
this.entityManager.close();
}
}
例如,假設T有A類的屬性,已經是一個實體堅持,我不能有列表
後能找到但我沒有這個問題,如果我只是看對於單個實體的Id。我得到我的實體,我可以不問其屬性的對象問題已經持續
public T getById(final Key id) {
return getEntityManager().find(clazz, id);
}
現在我可以做
A a= t.getA();
我怎麼能寫我實現的findAll(的)避免這種錯誤?也許另一個組件而不是EntityManager?我怎樣才能使它通用,而不必爲特定類型的實體實現特定的代碼?