siguiente es la consulta MySQL que estoy usando para recuperar HolidayPackages for a given Hotel
:¿Puedo usar el lenguaje de consulta de hibernación para entidades no mapeadas en una tabla?
SELECT
pkg.idHolidayPackage, pkg.name
FROM
holidaypackage pkg
INNER JOIN
holidaypackagehotel hph ON pkg.idHolidayPackage = hph.idHolidayPackage
INNER JOIN
hotelroom hr ON hr.idHotelRoom = hph.idHotelRoom
WHERE
hr.idHotel = 1;
tengo POJOs con mapeo para:
- HolidayPackage
- hotel
- HotelRoom
No tengo un POJO para HolidayPackageHotel
.
¿Hay alguna manera de utilizar Criteria API o HQL para ejecutar la consulta sql sin crear un POJO para HolidayPackageHotel?
Para los curiosos, las relaciones DB:
que utilizó la siguiente NamedNativeQuery: @NamedNativeQuery ( \t \t name = "getHolidayPackageForHotel", \t \t consulta = "SELECT * FROM wah_schema.holidaypackage PKG INNER JOIN HPH wah_schema.holidaypackagehotel EN pkg.idHolidayPackage = HPH. idHolidayPackage INNER JOIN hr wah_schema.hotelroom eN DONDE hr.idHotelRoom = hph.idHotelRoom hr.idHotel =: idHotel", \t \t clase de resultado = HolidayPackage.class) Esto parecía funcionar para mí, ya que el tipo de retorno: HolidayPackage.class es una entidad POJO que he definido. ¿Crees que este enfoque tiene algún inconveniente? – brainydexter
En cualquier consulta, ** SELECCIONAR * de ** no es un enfoque preferido. Agregue los nombres de columna en la cláusula de selección si es posible. el resto está bien. – ManuPK
me sale una columna ** 'IDHOTELROOM' no encontrado ** si uso esto: SELECT DISTINCT pkg.idHolidayPackage, pkg.name, pkg.itineraryHeader DE wah_schema.holidaypackage PKG combinación interna wah_schema.holidaypackagehotel HPH para la pkg.idHolidayPackage = hph.idHolidayPackage INNER JOIN wah_schema.hotelroom hr ON hr.idHotelRoom = hph.idHotelRoom WHERE hr.idHotel =? – brainydexter