Критерии гибернации для связанных объектов - PullRequest
1 голос
/ 20 сентября 2011

Существует класс "Item", и у него есть несколько связанных классов, которые называются Vehicle, Vmodel, Category, ItemName, Brand, SizeModel. У каждого класса есть идентификатор и имя свойства (например, класс Vehicle, "vid" и "vname""). Элемент класса имеет itemcode.

Также мне нужно получить объекты Item из данного образца объекта Item (называемого «sItem»), который соответствует свойствам объекта моего образца элемента и свойствам связанных объектов моего объекта.Вот мой код

Session session = getSession();
        List list = null;
        try {
            list = session.createCriteria(Item.class).add(Example.create(sItem))
                    .createCriteria("vehicle").add(Example.create(sItem.getVehicle())).
                    createCriteria("vmodel").add(Example.create(sItem.getVmodel())).
                    createCriteria("category").add(Example.create(sItem.getCategory())).
                    createCriteria("itemName").add(Example.create(sItem.getItemName())).
                    createCriteria("brands").add(Example.create(sItem.getBrands())).
                    createCriteria("sizeModel").add(Example.create(sItem.getSizeModel())).
                    list();
        } catch (HibernateException e) {
            e.printStackTrace();
        }

Я ссылался на этот (раздел 15.6 и последний пример кода в этом разделе).

при выполнении этого кода выше возникает ошибка(org.hibernate.QueryException: не удалось разрешить свойство: vmodel of: Entity.Vehicle).Пожалуйста, дайте мне знать, где проблема и где я должен проверить.Все мои сопоставления и другие настраиваемые классы создаются с помощью IDE Netbeans.

1 Ответ

1 голос
/ 20 сентября 2011

Попробуйте разбить код создания критериев следующим образом:

Criteria baseCrit = session.createCriteria(Item.class).add(Example.create(sItem));
baseCrit.createCriteria("vehicle").add(Example.create(sItem.getVehicle()));
baseCrit.createCriteria("vmodel").add(Example.create(sItem.getVmodel()));
baseCrit.createCriteria("category").add(Example.create(sItem.getCategory()));
baseCrit.createCriteria("itemName").add(Example.create(sItem.getItemName()));
baseCrit.createCriteria("brands").add(Example.create(sItem.getBrands()));
baseCrit.createCriteria("sizeModel").add(Example.create(sItem.getSizeModel()));
list = baseCrit.list();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...