我在代码中使用了条件查询。它总是会开火select * from ...
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_表示所有接近它给出错误的地方。
Unknown column 'y4_' in 'where clause'
我将其修改为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中对其进行修改?
使用投影来指定您要返回的列。
例
SQL查询
SELECT user.id, user.name FROM user;
hibernate替代
Criteria cr = session.createCriteria(User.class) .setProjection(Projections.projectionList() .add(Projections.property("id"), "id") .add(Projections.property("Name"), "Name")) .setResultTransformer(Transformers.aliasToBean(User.class)); List<User> list = cr.list();