Привет, у меня возникла проблема с созданием динамического c запроса с 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 должно быть параметром. Есть ли ошибка в синтаксисе запроса?
Спасибо