我正在使用JPA和Hibernate持久性提供程序从数据库中获取大量记录。这里createQuery
用于创建一个查询,该查询从DB返回一些记录,这些记录是根据用户给出的特定id(相应表的主键)识别的:
WFile wFile = d.getWFile();
Query query = entityManager.createQuery(QUERY_DECISION_ORDINAL);
query.setParameter("id", wFile.getId());
Long count = (Long) query.getSingleResult();
d.setOrdinal(count.intValue());
entityManager.persist(d);
我的问题是:getSingleResult
仅针对某些特定ID引发错误,并为其他ID顺利运行。
堆栈跟踪:
org.hibernate.LazyInitializationException: illegal access to loading collection
at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:363)
at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:108)
at org.hibernate.collection.AbstractPersistentCollection.readSize(AbstractPersistentCollection.java:131)