hibernateTemplate如何保存操作?

时间:2016-09-05 02:56:22

标签: java hibernate junit

当我进行JUnit测试时,save(new TCGroup())会插入但save(list.get(i))不会插入。

根据我的代码,为什么会这样?

@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));
}

1 个答案:

答案 0 :(得分:2)

tcGroupDao.save(lists.get(0))不会向数据库添加任何内容,因为lists.get(0)已经在数据库中。它是在before()的执行期间添加的。