Я посмотрел в Интернете и не могу найти четкого ответа на этот вопрос.
У меня есть две таблицы A и B. B - это потомок A. Мне нужно получить списокотличные атрибуты от B, основанные на некоторых ограничениях A.
Например:
SQL:
select distinct sirm.attribute
from store_item_received_material sirm
where sirm.store_item_id in (select si.id from store_item si where si.program_id = 9 and si.customer_id = 1 and si.date_processed is not null);
Конечно, SQL отлично работает.
Теперь мне нужно запустить это в моем проекте.
Я использую hibernate 3.3.1.Я попробовал следующее:
@NamedNativeQueries ({
@NamedNativeQuery (name = "select.distinct.sirm.for.customer.program", query = "select distinct(sirm.attribute) as attribute from store_item_received_material as sirm where sirm.store_item_id in (select si.id from store_item as si where si.customer_id = ? and si.program_id = ? and si.date_processed is not null)")
})
Но это не удалось из-за следующей ошибки:
вложенное исключение - org.hibernate.cfg.NotYetImplementedException: чистые собственные скалярные запросы еще не поддерживаются
Итак, я попробовал следующее:
@NamedNativeQueries ({
@NamedNativeQuery (name = "select.distinct.sirm.for.customer.program", query = "select distinct(sirm.attribute) as attribute from store_item_received_material as sirm where sirm.store_item_id in (select si.id from store_item as si where si.customer_id = ? and si.program_id = ? and si.date_processed is not null)", resultClass=StoreItemReceivedMaterial.class)
})
@SqlResultSetMapping(name = "select.distinct.sirm.for.customer.program", entities=@EntityResult(entityClass = StoreItemReceivedMaterial.class))
Но это тоже не работает, поскольку объект является объектом-сущностью и не имеет столбца идентификатора.
Итак, любая помощь вкак это сделать