1つのトランザクションで次の手順を実行します
(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
}