Почему вы хотите закрыть свой PersistenceManager здесь?Если вы хотите закрыть Запрос, вы должны использовать либо javax.jdo.Query.closeAll()
, либо javax.jdo.Query.close(Object result)
.Таким образом, вы можете сделать временную копию результата и затем закрыть запрос и его результат:
public static List<AgentEntity> findAgentEntityByString(String id) {
if (id == null) {
return null;
}
Query q = null;
try {
q = pm.newQuery("select id from " + AgentEntity.class.getName());
return new ArrayList<AgentEntity>((List<AgentEntity>) q.execute());
} finally {
if(q!= null){
q.closeAll();
}
}
}
или вы можете позже закрыть результат явно: