Почему createCriteria возвращает так много объектов?
Допустим, у меня есть класс, сопоставленный с hibernate, со множеством свойств, идентификатором и отсутствием отношения многие-к-одному, и его зовут MyClass. Я пытаюсь получить из базы данных все записи, поэтому я делаю следующее:
//omitted some code
Session session = sessionFactory.openSession();
List<MyClass> = session.createCriteria( MyClass.class ).list();
Для единственной записи в базе данных критерии возвращают мне 13 объектов в списке. Я не могу понять, почему, в то время как этот запрос:
//omitted some code
Session session = sessionFactory.openSession();
List<MyClass> = session.createQuery( "from MyClass" ).list();
Работает нормально, и возвращает только 1 объект. Может ли кто-нибудь объяснить это мне?
1 ответ
@ Да, но довольно глубоко спрятано @ Амир, спасибо за этот комментарий, он помог мне найти то, что было не так
Что ж, выясняется, что в файле отображения hibernate у меня есть небольшая вещь, связь с другим объектом, в котором есть список, определенный в файле отображения hibernate, и внутри этого списка определено отношение один ко многим, которое вызывало все проблема.
С самого начала решение было использовать createQuery вместо createCriteria, но мне было любопытно, если я не знаю что-нибудь о спящем режиме, но это была старая ошибка программиста