假设我有一个用hibernate映射的类,有一堆属性,一个id和多对一关系,它的名字是MyClass。我想要做的是从数据库获取所有记录,所以我做了这样的事情:
//omitted some code
Session session = sessionFactory.openSession();
List<MyClass> = session.createCriteria( MyClass.class ).list();
对于数据库中的SINGLE记录,条件会在列表中返回13个对象。我无法理解为什么,这个查询:
//omitted some code
Session session = sessionFactory.openSession();
List<MyClass> = session.createQuery( "from MyClass" ).list();
正常工作,只返回1个对象。有人可以向我解释一下吗?
答案 0 :(得分:0)
嗯,它发现,在hibernate映射文件中我有一个小东西,与另一个对象的关系,其中有一个在hibernate映射文件中定义的列表,并且在这个列表中定义了一对多的关系,造成了所有麻烦。
从一开始解决方案是使用createQuery而不是createCriteria,但我很好奇,如果我不知道有关hibernate的东西,但这是一个老程序员的错误