Spring アプリケーションのテスト ケース (Junit) を実行すると、このバグが発生します。
この問題を検索したところ、遅延初期化が発生し、セッションが閉じている間にアプリケーションが第 2 レベルのデータを取得しようとすると (オブジェクトが切り離された状態になる)、このエラーが発生すると、そのパフォーマンスとして EAGER として初期化を行うことができないという情報が得られました。問題。
私のテストクラスには以下が含まれます:
@RunWith(SpringJUnit4ClassRunner.class)
public class MyTestClass extends AbstractControllerTest {
@Rule
public TestName testMethodName = new TestName();
@Before
public void setUp() throws Exception
{
super.setUp();
}
@After
public void tearDown() throws Exception
{
super.tearDown();
}
@Test
public void myTestMethod ()
{
assertTrue("Response Validating",validate(baseEntity,perform()));
}
}
メソッド assertTrue("Response Validating",validate(baseEntity,perform())); を置く方法はありますか? トランザクションでは、現在のセッションまたは新しいセッションとバインドできるため、切り離されたオブジェクトが永続オブジェクトになり、アプリケーションが第 2 レベルのデータも取得できます。私はこの問題を検索し、リンクで解決策を見つけました: http://www.jroller.com/RickHigh/entry/hibernate_spring_simulating_an_opensessioninviewfilter しかし、このリンクはトランザクションが作成されるターゲットオブジェクトを必要とするため、私の要件を満たしていません。