A N*_*ter 4 java mysql hibernate
我对hibernate的setParameterList api有一些问题.
我试图将一个Collection传递给SQLQuery并进行"in"子句搜索.记录存在于DB中并进行原始查询,我能够检索它们或者如果我只是在相同的Hibernate SQL中替换它们emp.emp_name in ('Joe','John')
,我能够得到理想的结果集.我很困惑为什么Hibernate无法替换Collection而不是命名参数.这是代码:
session.createSQLQuery("select emp_id as id from emp where emp.emp_name in (:empNames)")
.addScalar("id",Hibernate.INTEGER)
.setParameterList("empNames",new String[]{"Joe","John"})
.list()
Run Code Online (Sandbox Code Playgroud)
我查看了setParameterList的Hibernate文档,但我无法推断出这种特殊行为.
我怀疑问题正是因为你正在使用createSQLQuery
.这里的单个参数需要在真正的SQL中更改为多个参数,但是通过使用"原始"查询,您告诉Hibernate不要乱用SQL.
您可以使用"普通"Hibernate查询吗?
归档时间: |
|
查看次数: |
11434 次 |
最近记录: |