您好,我在使用 hibernate 创建动态查询时遇到一些问题:
@SuppressWarnings("unchecked")
public List<EnvironmentConfiguration> findEnviromentProperty(String environment) {
EntityManagerHelper.log(
"finding property EnvironmentConfiguration instances", Level.INFO,
null);
try {
final String queryString = "(select e.name as environment,\n" +
" SUBSTRING_INDEX(ec.name ,'.',-1) as property,\n" +
" ec.value \n" +
"from pkca_test_db.ENVIRONMENT e, pkca_test_db.ENVIRONMENT_CONFIGURATION ec\n" +
"where e.ID=ec.ID_ENVIRONMENT \n" +
"and e.name=" + environment +"= :propertyValue )\n" +
"union \n" +
"(select b.name as environment,\n" +
" SUBSTRING_INDEX(bc.name ,'.',-1) as property,\n" +
" bc.value \n" +
"from pkca_test_db.ENVIRONMENT b, pkca_test_db.ENVIRONMENT_CONFIGURATION bc\n" +
"where b.ID=bc.ID_ENVIRONMENT \n" +
"and b.id=1) ;";
Query query = getEntityManager().createQuery(queryString);
query.setParameter("propertyValue", environment);
return query.getResultList();
} catch (RuntimeException re) {
EntityManagerHelper.log("find all failed", Level.FATAL, re);
throw re;
}
}
这个值 e.name="+environment +"= :propertyValue 必须由一个参数组成。查询语法是否有错误?
谢谢
最佳答案
我不明白你想在那里做什么。您的情况下的查询将类似于 ...e.name=*value*= :propertyValue...
。
也许你想做的是
...e.name="+ 环境 + "联合
。
关于JAVA - hibernate - 在 DAO 中创建新查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60006570/