JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java Application Framework » Spring  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to topicthreaded modego to previous topicgo to next topic
本主題所含的標籤
作者 在一個transaction中 做了insert可是卻沒有辦法select到這個結果
ccdrumer





發文: 17
積分: 0
於 2012-01-17 11:43 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
我想做測試一個insert的方法 是否有成功 而不管成不成功都希望能取消這個行為
所以 我建立一個新id
第一次查詢應該查不到資料 所以assertEquals(list.size(), 0) 過了
可是 在我插入資料之後
卻出現AssertionFailedError 所以我想是不是沒有辦法讀取到尚未commit的資料
如果在insert之後就commit資料 的確有寫進資料庫
於是我試了設定TransactionDefinition.ISOLATION_READ_UNCOMMITTED 不過依舊沒有效果
請問問題是出在哪裡呢??
我初次使用Transaction 是不是有甚麼觀念不對呢??
請各位前輩多多指教 謝謝 ^_^
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void testInsertData(){
  MyService mySvc = (MyService)factory.getBean("MyService");
  TransactionStatus status = null ;
  try{
    DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setIsolationLevel(TransactionDefinition.ISOLATION_READ_UNCOMMITTED); // 後來加入的
    status = transactionManager.getTransaction(def);
    
    String id = getNewId();
 
    List<Data> list = mySvc.selectDataById(id); //查詢
    assertEquals(list.size(), 0);
    mySvc.insertData(id); // 新增
    list = mySvc.selectDataById(id); // 再查詢
    assertEquals(list.size(), 1); // junit.framework.AssertionFailedError: expected:<0> but was:<1>
  } finally {
    transactionManager.rollback(status);
  }
}


reply to postreply to post
作者 Re:在一個transaction中 做了insert可是卻沒有辦法select到這個結果 [Re:ccdrumer]
kenshin520





發文: 109
積分: 0
於 2012-01-17 16:48 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
基本上你是在同一個transaction裡
你會讀的到你自己做的insert/update/delete
而別的transaction會不會就要看別的transaction的設定了


reply to postreply to post
» JWorld@TW »  Java Application Framework » Spring

reply to topicthreaded modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8