当我执行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));
}

最佳答案

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

关于java - hibernateTemplate如何保存操作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39323342/

10-10 15:10