[Java lista] JPA lekerdezes

Ujfalusi Sandor ujfalusi.sandor at gmail.com
2008. Már. 4., K, 11:27:17 CET


q = em.createNativeQuery(sql);
helyett
q = em.createQuery(sql)
nem?

2008/3/4, Csaba Ragasits <ragasits.csaba at gmail.com>:
>
> Ledebuggoltam újra, nem adok null értéket át paraméterként.
>
> A teljes kĂłd:
>
>     public Grawe[] getGrawe(Arfolyam a, Fiok f, Dolgozo d) {
>         EntityManager em = getEntityManager();
>         String sql = "SELECT g FROM Grawe g ";
>         Query q = null;
>         Boolean where = true;
>         try {
>             if (a == null && f == null && d == null) {
>                 //Az összes elem megjelnítése
>                 q = em.createQuery(sql);
>             } else {
>                 if (f != null) {
>                     if (where) {
>                         sql = sql + "WHERE g.fiokId.id = :fid ";
>                         where = false;
>                     } else {
>                         sql = sql + "AND g.fiokId.id = :fid ";
>                     }
>                 }
>                 if (a != null) {
>                     if (where) {
>                         sql = sql + "WHERE g.arfolyamId.id = :aid ";
>                         where = false;
>                     } else {
>                         sql = sql + "AND g.arfolyamId.id = :aid ";
>                     }
>                 }
>                 if (d != null) {
>                     if (where) {
>                         sql = sql + "WHERE g.dolgozoId.id = :did ";
>                         where = false;
>                     } else {
>                         sql = sql + "AND g.dolgozoId.id = :did ";
>
>                     }
>                 }
>
>                 q = em.createNativeQuery(sql);    //paraméterek megadása
>                 if (a != null) {
>                     q.setParameter("aid", a.getId());
>                 }
>                 if (f != null) {
>                     q.setParameter("fid", f.getId());
>                 }
>                 if (d != null) {
>                     q.setParameter("did", d.getId());
>                 }
>             }
>             return (Grawe[]) q.getResultList().toArray(new Grawe[0]);
>
>         } finally {
>             em.close();
>         }
>     }
>
>
> 2008/3/4, Peter Verhas <peter at verhas.com>:
>
> > Valamelyik parametered null?
> >  Verhás Péter
> >  +36(30)9306805
> >  peter at verhas.com
> >
> >
> >
> >  -----Original Message-----
> >  From: "Csaba Ragasits" <ragasits.csaba at gmail.com>
> >  Date: Tue, 4 Mar 2008 10:24:38
> >  To:javalist <javalist at javagrund.hu>
> >  Subject: [Java lista] JPA lekerdezes
> >
> >  Hello,
> >
> >  Próbálok dinamikusan összerakni egy JPQL-es lekérdezést (Netbeans,
> >  Glassfish, Derby), ahol az alábbi érdekes problémába futottam bele:
> >
> >  Ha az összerakott lekérdezés csak egy paramétert tartalmaz (SELECT g
> >  FROM Grawe g WHERE g.fiokId.id = :fid), akkor a lekérdezés jól
> >  működik.
> >
> >  Amennyiben 2 vagy több paramétert próbálok belerakni a lekérdezésbe,
> >  akkor a következő hibaüzenetet kapom:
> >
> >  Internal Exception: java.sql.SQLSyntaxErrorException: Syntax error:
> >  Encountered ":" at line 1, column 43.
> >  Error Code: -1
> >  Call: SELECT g FROM Grawe g WHERE g.fiokId.id = :fid AND
> g.arfolyamId.id = :aid
> >  Query: DataReadQuery()
> >  Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0 (Build
> >  b58g-fcs (09/07/2007))):
> >  oracle.toplink.essentials.exceptions.DatabaseException
> >  Internal Exception: java.sql.SQLSyntaxErrorException: Syntax error:
> >  Encountered ":" at line 1, column 43.
> >  Error Code: -1
> >
> >  Az összeállított lekérdezést a következő képpen hívom meg:
> >
> >  q = em.createNativeQuery(sql);    //paraméterek megadása
> >  if (a != null) q.setParameter("aid", a.getId());
> >  if (f != null) q.setParameter("fid", f.getId());
> >  if (d != null) q.setParameter("did", d.getId());
> >  return (Grawe[]) q.getResultList().toArray(new Grawe[0]);
> >
> >  Találkozott már valaki hasonló problémával?
> >  Már napok óta küzdök vele, de nem nagyon tudok rájönni a hiba okára.
> >
> >  Thx,
> >  Csaba
> >
> > _______________________________________________
> >  Javalist mailing list
> >  Javalist at javagrund.hu
> >  http://javagrund.hu/mailman/listinfo/javalist
> >
> >  _______________________________________________
> >  Javalist mailing list
> >  Javalist at javagrund.hu
> >  http://javagrund.hu/mailman/listinfo/javalist
> >
> _______________________________________________
> Javalist mailing list
> Javalist at javagrund.hu
> http://javagrund.hu/mailman/listinfo/javalist
>
--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: http://javagrund.hu/pipermail/javalist/attachments/20080304/4073e060/attachment-0001.html 


További információk a(z) Javalist levelezőlistáról