@Repository("baseDao")
public class BaseDaoImpl implements IBaseDao {
@Autowired
private EntityManagerFactory entityManagerFactory;
public Session getSession() {
return entityManagerFactory.unwrap(SessionFactory.class).openSession();
}
@Override
public <T> void saveOrUpdateNow(T clazz){
Session session=this.getSession();
session.merge(clazz);
//立即写入数据库并释放内存
session.flush();
session.clear();
}
@Override
@Transactional
public <T> void saveOrUpdate(T clazz){
Session session=this.getSession();
//方法三
session.saveOrUpdate(clazz);
session.persist(clazz);
session.clear();
session.close();
}
session.beginTransaction();
session.saveOrUpdate(t);
session.getTransaction().commit(); //提交下
楼主的这里有两个方法:saveOrUpdateNow、saveOrUpdate,不知楼主说的是那个方法的数据没有进入到数据库中。
看代码:saveOrUpdateNow 没有事务控制,数据是不能保存到数据库中;saveOrUpdate添加了spring的事务注解,直接调用该方法是可以保存数据到数据库的。