2012-04-30 7 views
1

Junitでエンティティ値をテストしようとしていますが、エンティティは遅延フェッチタイプと多対多の関係にあります。Junitで遅延ロードされたエンティティオブジェクトにアクセスする

Junitでこれを拡張しようとすると、次のエラーが発生します。 私の理解が間違っていたら、私は必要なのは、セッションをJunitで開き、このオブジェクトをロードすることです。

SEVEREは:怠惰な役割のコレクションの初期化に失敗しました:com.example.stock.model.Stock.locationsを、何のセッションまたはセッションが org.hibernate.LazyInitializationExceptionを閉じませんでした:なまけコレクションの初期化に失敗しました役割の:com.example.stock.model.Stock.locations、いかなるセッションまたはセッションがorg.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnectedでorg.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:358) で を閉じませんでした(AbstractPersistentCollection.java:350) at org.hibernate.collection.AbstractPersistentCollection.i nitialize(AbstractPersistentCollection.java:343)org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:86)で org.hibernate.collection.PersistentBag.iterator(PersistentBag.java:249)で com.exampleで 。 sun.reflect.NativeMethodAccessorImpl.invokeでsun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド) でcommon.StockManytoManyTest.testGetStock(StockManytoManyTest.java:53) (NativeMethodAccessorImpl.java:39)

答えて

5

は、統合テスト・クラスに注釈を付けますまたは@Transactionalの方法。参照:10.3.5.4 Transaction management

+0

ご迷惑をおかけします。これは – Rama

+0

@ラーマで働いた:それを聞いてうれしい。正しいと分かっている場合は、[受諾](http://meta.stackexchange.com/questions/5234)/回答をupvotingしてください。 –

+0

私のために働いた。ありがとう! – tweekran

1
 
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true) 
@Transactional 
public class TestAnything{ 
    ... 
} 
関連する問題