Запрос критериев гибернации для получения определенных столбцов

Я использую Criteria Query в своем коде. Он всегда срабатываетselect * from...

Вместо этого я хочу пренебречь одним полем столбца ()из моего запроса, так как это поле содержит большое количество данных, хранящихся в байтах. И это вызывает проблемы с производительностью.

Может ли кто-нибудь дать идею для этого?


Некоторое обновление

Я добавил проекцию в свой запрос, и он создал такой запрос, как...

select
    this_.TEMPLATE_ID as y0_,
    this_.TEMPLATE_NAME as y1_,
    this_.CREATE_DATE as y2_,
    this_.UPDATE_DATE as y3_,
    this_.STATUS_CODE as y4_,
    this_.USER_ID as y5_,
    this_.UPDATED_BY as y6_,
    this_.CATEGORY_ID as y7_,
    this_.PRACTICE_ID as y8_ 
from
    templates this_ 
inner join
    user user1_ 
        on this_.USER_ID=user1_.USER_ID 
inner join
    template_categories category2_ 
        on this_.CATEGORY_ID=category2_.CATEGORY_ID 
where
    y4_=? 
    and y8_=? 
    and y5_ in (
        ?, ?
    ) 
order by
    y1_ asc limit ?

А теперь вопрос такой.. Unknown column 'y4_' in 'where clause'и такая же ошибка для y8 _, y5 _означает, что для всех, где близко, это дало ошибку.

Я изменил его на Query, например...

select
    this_.TEMPLATE_ID as y0_,
    this_.TEMPLATE_NAME as y1_,
    this_.CREATE_DATE as y2_,
    this_.UPDATE_DATE as y3_,
    this_.STATUS_CODE as y4_,
    this_.USER_ID as y5_,
    this_.UPDATED_BY as y6_,
    this_.CATEGORY_ID as y7_,
    this_.PRACTICE_ID as y8_ 
from
    templates this_ 
inner join
    user user1_ 
        on this_.USER_ID=user1_.USER_ID 
inner join
    template_categories category2_ 
        on this_.CATEGORY_ID=category2_.CATEGORY_ID 
where
    this_.STATUS_CODE=1
    and this_.PRACTICE_ID=1 
    and this_.USER_ID in (
        1, 2
    ) 
order by
    y1_ asc limit ?

и это сработало. Но я не знаю, как изменить его в HQL?

47
задан Ketan 24 July 2012 в 09:49
поделиться