쿼리 개체의 close() 메서드를 사용할 때 명확한 설명서를 찾을 수 없습니다. 다음 예제에서는 resource with try가 Autocloseable.close()를 호출하여 PersistenceManager와 Query를 닫습니다. 내부적으로 Query.close()를 호출하면 반환 된 모든 결과를 닫는 Query.closeAll()이 호출됩니다.JDO DataNucleus를 사용하는 경우 Query.close()
Collection<Object> returnedEntities = new ArrayList<>();
Transaction tx = null;
try (PersistenceManager pm = DataStore.getInstance().getPM();
Query< Object>query = pm.newQuery(Object.class);) {
tx = pm.currentTransaction();
tx.begin();
query.setOrdering(<ordering>);
query.setFilter(<some filters go here>);
query.declareParameters(<parameterType>);
returnedEntities = (Collection<Object>) query.execute(<parameterValue>);
returnedEntities = pm.detachCopyAll(returnedEntities);
tx.commit();
} catch (Exception e) {
//some error handling goes here...
} finally {
if (tx != null && tx.isActive()) {
tx.rollback();
}
}
이 쿼리 개체에 필요한 Query.close()의 호출인가, 아니면 그것은 PersistenceManager를 폐쇄하도록 충분하고 그 다음 나머지를 닫? 일부 문서 또는 링크는 대단히 감사하겠습니다. 감사!
완벽한 답변. 고맙습니다! –