关于 Hibernate Native SQL
1.是否 hibernate native sql 指定返回实体后 参数不能包含 '{' ?
2.是否hibernate native sql 分页时,order by 后 的参数不能用 ? 指定?
有谁遇到过此类问题,有什么好办法解决嘛?
select
{it.*}
from Item_View it
left outer join Formulation_Table f on it.id = f.id
left outer join RawMaterial_Table r on it.id = r.id
left outer join ComponentComposition_Table c on f.latestCompositionVersion = c.id
left outer join PartComposition_Table p on r.latestCompositionVersion = p.id
where
(
c.compositionStatus in
(
'Checked Out Modified','Checked Out Not Modified','Normal','Outdated'
)
or
(
r.isHasComposition = 1
and p.compositionStatus in
(
'New',
'Normal',
'Checked Out - Modified',
'Checked Out - Not Modified',
'Outdated'
)
)
or r.isHasComposition=0
)
and
(
lower
(
it.code
)
like :keyword1 escape '/' or lower
(
it.alternativeCode
)
like :keyword1 escape '/' or lower
(
it.experimentalCode
)
like :keyword1 escape '/' or lower
(
it.name
)
like :keyword2 escape '/' or lower
(
it.shortName
)
like :keyword2 escape '/' or lower
(
r.description
)
like :keyword2 escape '/' or lower
(
r.chemicalName
)
like :keyword2 escape '/' or lower
(
r.disclosureName
)
like :keyword2 escape '/' or lower
(
r.technicalName
)
like :keyword2 escape '/' or lower
(
r.commonName1
)
like :keyword2 escape '/' or lower
(
r.commonName2
)
like :keyword2 escape '/' or lower
(
r.commonName3
)
like :keyword2 escape '/' or lower
(
r.commonName4
)
like :keyword2 escape '/' or lower
(
r.commonName5
)
like :keyword2 escape '/'
)
and it.deleteFlag = 0
order by (case when lower(it.name) like '{%' escape '/' then 1 when lower(it.code) like '{%' escape '/' then 2 else 3 end),
(case when it.active = 'Active' then 1 else 2 end),
(case when it.name like '{%' escape '/' then it.name else it.code end)
Query query = sess.createSQLQuery(sb.toString())
.addEntity("it", ItemView.class)
.setString("keyword1", index.toLowerCase() + "%")
.setString("keyword2","%" + index.toLowerCase() + "%")
.setFirstResult(start)
.setMaxResults(limit);
List<ItemView> ret = query.list();
报以下异常
nested exception is org.springframework.orm.hibernate3.HibernateQueryException: Unmatched braces for alias path