【发布时间】:2012-11-27 19:02:34
【问题描述】:
我在一个交易
中有以下说明(0)Transaction begins
(1)Insert A into myTable
(2)Load all data from myTable using HQL #-> A is not loaded
(3)Load all data from myTable using Criteria #-> A is loaded
(4)Transaction ends
但如果我交换(2) 和(3),两种情况都很好,A 已加载。
什么会导致这个问题?
详情: 这是我的代码
@Transcational
myFunction(){
//I have A inserted into myTable and the rest...
SQLQuery crit = (SQLQuery) getSession().createSQLQuery("select * from myTable ");
ArrayList<PatternHeader> ls = (ArrayList<PatternHeader>)crit.list(); //There is no trace of A
Criteria cr = getSession().createCriteria(MyTable.class);
ArrayList<PatternHeader> crls = (ArrayList<PatternHeader>)cr.list(); // A is loaded as well
}
【问题讨论】:
-
实际上你是在做一个 SQL 查询而不是一个 HQL 查询。
-
是的,我知道。事实上,查询有点不同,但为了简单起见,我将其更改为这个。
标签: hibernate hql criteria hibernate-criteria