问题描述
持久化对象的定义是在session缓存中存在该对象,并且在数据库中也有与此对象唯一对应的一条记录但是在事务方法中执行了dataStore.save(obj);obj只是存在session的缓存中,并在insertion中注册了要插入的行为,并没有插入到数据库中这样是不是和持久化对象的定义相违背了但是书上又说的很清楚,经过savefind,load以后的对象都是持久化对象,还望高手解答
解决方案
解决方案二:
需要commit()提交事物才会与数据库同步吧,则也是为什么在存储数据事需要开启事物
解决方案三:
即使是直接向数据库插入数据,在没有提交事务前数据也是只保存在数据库缓存中,事务提交以后才会真正保存在数据库中。savefind,load以后,虽然对象有可能是保存在缓存中的,但是数据已经通过了数据库的检查,可以随时插入到数据库中,若事务没有回滚,肯定回被插入到数据库中。所以称之为持久化对象并不矛盾。
解决方案四:
需要commit()提交事物才会与数据库同步吧,则也是为什么在存储数据事需要开启事物----------1楼
时间: 2024-09-15 08:16:52