2016-09-05 12 views
2

JUnitテストを実行するとsave(new TCGroup())が挿入されますが、save(list.get(i))は挿入されません。hibernateTemplateはどのように操作を保存しますか?

私のコードに基づいて、それはなぜですか?

@Before 
public void before() throws Exception { 
    for(int i=0;i<10;i++){ 
     TCGroup tcGroup = new TCGroup(); 
     tcGroup.setGroupName("GROUP"+i); 
     lists.add(tcGroup); 
    } 
    tcGroupDao.saveList(lists); 
} 
@Test 
@Transactional 
@Rollback(true) 
public void testSave() throws Exception { 
    assertEquals(10L,tcGroupDao.queryForObject("select count(*) from TCGroup",null)); 
    tcGroupDao.save(lists.get(0)); 
    assertEquals(11L,tcGroupDao.queryForObject("select count(*) from TCGroup",null)); 
    TCGroup tcGroup = new TCGroup(); 
    tcGroup.setGroupName("GroupAdd"); 
    tcGroupDao.save(tcGroup); 
    assertEquals(11L,tcGroupDao.queryForObject("select count(*) from TCGroup",null)); 
} 

答えて

2

tcGroupDao.save(lists.get(0))lists.get(0)がデータベースにすでに存在するため、データベースに何も追加しません。これはexecutonの間に追加されたbefore()です。

関連する問題