В моем .hbm.xml есть два запроса.Первый извлекает количество записей в таблице:
<query name="Airframe.SearchCount"><![CDATA[
select
count(*)
from
AirframeBean as a inner join
a.manufacturer as m
where
m.name like :manufacturer and
a.description like :description and
((a.percentSize <= :sizeMax and
a.percentSize >= :sizeMin) or
a.percentSize is null) and
((a.wingSpanInches <= :spanMax and
a.wingSpanInches >= :spanMin) or
a.wingSpanInches is null) and
((a.recommendedAuwMinLbs <= :auwMax and
a.recommendedAuwMaxLbs >= :auwMin) or
a.recommendedAuwMaxLbs is null)
]]></query>
А второй получает данные постранично, используя смещение и предел:
<query name="Airframe.SearchData"><![CDATA[
select
a
from
AirframeBean as a inner join
a.manufacturer as m
where
m.name like :manufacturer and
a.description like :description and
((a.percentSize <= :sizeMax and
a.percentSize >= :sizeMin) or
a.percentSize is null) and
((a.wingSpanInches <= :spanMax and
a.wingSpanInches >= :spanMin) or
a.wingSpanInches is null) and
((a.recommendedAuwMinLbs <= :auwMax and
a.recommendedAuwMaxLbs >= :auwMin) or
a.recommendedAuwMaxLbs is null)
]]></query>
Запросы практически идентичны,единственное отличие состоит в том, что первый начинается с select count(*)
, а второй начинается с select a
.Есть ли способ избежать вставки копий?
Обновление Основная проблема заключается в том, что мне нужен Hibernate для проверки схемы, сопоставлений и запросов HQL при запуске.