Monday 15 February 2010

java - JPA - Join on same table -



java - JPA - Join on same table -

i got request :

typedquery<paramgenerauxexternes> q = entitymgr .createquery("select p paramgenerauxexternes p " + "where exists " + "(select q paramgenerauxexternes q " + "where q.key.origine = :porigine " + "and q.key.typeparam :ptypeparametrebis " + "and p.key.soustype concat('%',q.libelleparam) " + "and q.actif = 'y') " + "order p.libelleparam", paramgenerauxexternes.class) //.setparameter("ptypeparametre", "rel_to_household") .setparameter("porigine", poriginegrc) .setparameter("ptypeparametrebis", "grc_household_type_p%");

but doesn't work, got error message tell prenthesis missing :

grave: ejb exception: : javax.persistence.persistenceexception: org.hibernate.exception.sqlgrammarexception: ora-00907: missing right parenthesis

the generated sql jpa has parenthesis after sec select :

select paramgener0_.code_param code1_2823_, paramgener0_.origine origine2823_, paramgener0_.sous_type sous3_2823_, paramgener0_.type_param type4_2823_, paramgener0_.actif actif2823_, paramgener0_.libelle_param libelle6_2823_ foa_param_gen_externe paramgener0_ exists ( select (paramgener1_.code_param, paramgener1_.origine, paramgener1_.sous_type, paramgener1_.type_param) foa_param_gen_externe paramgener1_ paramgener1_.origine=? , ( paramgener1_.type_param ? ) , ( paramgener0_.sous_type '%'||paramgener1_.libelle_param ) , paramgener1_.actif='y' ) order paramgener0_.libelle_param

i don't know why hibernate add together parenthesis after sec select ? please if know do...

that query fails on oracle passes on, example, postgres. if using oracle database, seek setting oracle sql dialect jpa provider. hibernate sql dialects

java hibernate jpa

No comments:

Post a Comment