DB から多数のレコードをフェッチするために、Hibernate 永続化プロバイダーで JPA を使用しています。ここでcreateQuery
は、ユーザーが指定した特定の ID (対応するテーブルの主キー) に基づいて識別される、DB から多数のレコードを返すクエリを作成するために使用されます。
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)