2010-06-03 2 views
1

EL을 사용하여 JSP 페이지의 목록을 반복 할 때 Google App Engine에서 다음 오류가 발생했습니다.Google App Engine 오류 개체 관리자가 닫혔습니다

Object Manager has been closed 

내가 코드를 다음과 같이 문제를 해결하지만, 내가이 문제에 매우 좋은 해결책이라고 생각하지 않습니다

public List<Item> getItems() { 
     PersistenceManager pm = getPersistenceManager(); 
     Query query = pm.newQuery("select from " + Item.class.getName()); 
     List<Item> items = (List<Items>) query.execute();  
     List<Item> items2 = new ArrayList<Item>(); // This line solved my problem 
     Collections.copy(items, items2); // and this also 
     pm.close(); 
     return (List<Item>) items; 
    } 

내가 pm.detachCopyAll (항목)를 사용하는 시도는했다 같은 오류. detachCopyAll() 메서드는 내가했던 것과 똑같이해야한다는 것을 알았지 만 그 메서드는 데이터 누 셀스의 일부 여야하므로 내 owm 메서드 대신 사용해야합니다. 그럼 왜 안되지? 왜?

답변

3

나는이 문제를 직접 해결했다. 나는 엔티티에서 @PersistenceCapable (detachable = "true")을 가지지 않았으므로, 명백하게 객체는 디프 풀 ​​(deafult)에 의해 분리 될 수 없다.

@PersistenceCapable(detachable="true") 
public class Item { 

... 

} 
1

나는) (가까운 호출하기 전에 목록의

당신은 호출 할 수 있습니다

방법 크기() ... 너무이 오류 받고 있어요; 다른 JPA 구현에서 동일한 코드가 예외를 throw하지 않기 때문에 아직 버그가 수정되지 않았다고 생각합니다.