为了账号安全,请及时绑定邮箱和手机立即绑定

Hibernate中清除持久化状态对象失效

Hibernate中清除持久化状态对象失效

叮当猫咪 2019-03-13 17:15:02
调用session.clear()或者session.evict(obj)皆无法清除Hibernate中的持久化状态的对象目前已知的情况是:当主键使用identify策略时,session.save(person)调用完成后会发出INSERT语句当主键使用increment策略时,不会发出INSERT语句,并且结果与预期一致代码如下:@Testpublic void test1(){    Session session = sessionFactory.openSession();    Transaction transaction = session.beginTransaction();        Person person = new Person();    person.setName("tom888");    session.save(person);    //此处是否发出**INSERT**语句与主键策略有关        session.evict(person);//  session.clear();    transaction.commit();    session.close();}主键使用identify策略时,代码执行结果:log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).log4j:WARN Please initialize the log4j system properly.Hibernate: insert into Person (name, description) values (?, ?)我期待的结果应该是数据不应该有任何变化才对,也不应该执行任何SQL语句,因为我调用了session.clear()或者session.evict(obj)时,person应该由持久化状态转为游离状态,期待您的回答!
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 421 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信