Я начинаю в спящем режиме и много читаю, но застрял в этой точке. В моем JSF приложении, которое я реализующий hibertate, у меня есть этот запрос SQL, который работает в моей базе данных:sql-запрос в спящий режим
SELECT *
FROM CourseProduct
INNER JOIN Course
ON CourseProduct.number=Course.number
inner join Product
on CourseProduct.product=Product.product;
Я пытаюсь сделать то же самое с Hibernate для моего приложения JSF. До сих пор я придумал:
List results = session.createCriteria(Course.class)
.setFetchMode("product", FetchMode.JOIN)
.setFetchMode("number", FetchMode.JOIN)
.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
.list();
Это правильно или совершенно неправильно? Также как мне получить доступ к полям из результатов (если мне это нужно, поскольку hibernate заполняет классы для меня)? Похоже, что результаты, которые я получаю, - это только таблица курсов, значение первичного ключа в продукте, но не другие 2 поля в таблице Product.
EDIT
Я предполагаю, что я решил свою собственную проблему. Похоже, что приведенный выше код верен, я просто не понимал, что для доступа к классу Product я должен был получить к нему доступ из класса Set in the Course! Я просто использовал итератор для получения данных, которые мне нужны в методе get для набора продуктов в классе курса.