当我执行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/