Hibernate的session是否是同一实例
@Test public void testList() throws ParseException, InterruptedException { log.debug("invoke f1 2 times"); aService.f1(); aService.f1(); log.debug("invoke f2 "); aService.f2(); }
?
运行结果如下:
?
2013-07-25 16:31:26,359 [DEBUG] ****testList(DataSourceTestCase.java:18) - invoke f1 2 times
2013-07-25 16:31:26,375 [DEBUG] ****.f1(FundProfileServiceImpl.java:25) - 15095802
2013-07-25 16:31:26,390 [DEBUG] ****.f1(FundProfileServiceImpl.java:25) - 27653884
2013-07-25 16:31:26,390 [DEBUG] ****.testList(DataSourceTestCase.java:22) - invoke findForTest2?
2013-07-25 16:31:26,390 [DEBUG] ****.f1(FundProfileServiceImpl.java:25) - 19997070
2013-07-25 16:31:26,406 [DEBUG] ****.f1(FundProfileServiceImpl.java:25) - 19997070
?
?
可见在testList方法中调用的两次f1,对应的session不是同一个实例。
f2调用的两次f1中对应的session是同一实例。
?
原因应该是这样:
在testList方法中调用的两次f1,是两个不同的事务。f2调用的两次f1是在同一事务中。
对吧?应该不确切。
??