如下代码,flushMode是auto,为什么在执行query.lst() 的select时没有先自动执行user1入库的insert语句。
按照auto的FulshMode,应该在查询前,flush时,、commit时进行缓存清理的啊。
[code="java"]System.out.println("flushMode="+session.getFlushMode());
//Transaction tx=session.beginTransaction();
User user1=new User();
user1.setUserID(13000000);
user1.setUserName("wa1");
session.save(user1);
Query query = session.createQuery("from query.common.User");
List lst=query.list();
[/code]
[url]https://hibernate.atlassian.net/browse/HHH-1410[/url]
When operating outside a transaction, FlushMode.AUTO is a bad thing.
Two options here:
1) no-op the autoFlush processing when outside a transaction
2) explicitly manage the Session's FlushMode setting when outside a transaction
#1 seems more viable, since Session.setFlushMode() might cause problems (or at least extra complexity) with #2
1、你是用的自动生成主键吗? 如果是 你改成assigned 或者看name=wa1的
user1.setUserID(13000000);