Announcement

Collapse
No announcement yet.

Hilfe bei SQl und Hibernate Wichtig !

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Hilfe bei SQl und Hibernate Wichtig !

    Hallo Leute
    ich arbeite mit Hibernate und einer SQL Datenbank

    Ich habe im Hibernate eine namendQuery zusammengebastelt die soweit auch sehr gut funktioniert



    <sql-query name="aktiv">
    <![CDATA[

    Select {c.*} from tabelle1 {c}, tabelle2 e
    where
    e.SRHLSSTA = :KZ
    and c.SRNR = e.SRNR
    and ((c.SRHLOCUS='A' and c.SRHGK = :a1)
    or (c.US='A' and c.SRHGK = :a2)
    or (c.US='B' and c.SRHGK = :b1)
    or (c.US='B' and c.SRHGK = :b2)
    or (c.US='Cw' and c.SRHGK = :cw1)
    or (c.US='Cw' and c.SRHGK = :cw2) or (c.CUS='DR' and c.SRHGK = :dr1)
    or (c.SRHLOCUS='DR' and c.SRHGK = :dr2)
    or (c.US='DQ' and c.SRHGK = :dq1)
    or (c.US='DQ' and c.SRHGK = :dq2))
    order by c.SRNR
    ]]>
    </sql-query>

    In der Java Klasse rufe ich folgendes auf

    public List getaktive(String a1, String a2, String b1, String b2, String cw1, String cw2, String dr1, String dr2, String dq1, String dq2) {
    PersistenceManager pm = super.getPersistenceManager();
    Query q = pm.getNamedQuery("aktiv");
    q.setString("a1", a1);
    q.setString("a2", a2);
    q.setString("b1", b1);
    q.setString("b2", b2);
    q.setString("cw1", cw1);
    q.setString("cw2", cw2);
    q.setString("dr1", dr1);
    q.setString("dr2", dr2);
    q.setString("dq1", dq1);
    q.setString("dq2", dq2);
    q.setString("KZ","A");

    return pm.findAllByQuery(q);
    }



    a1,a2,b1,b2 ...... sind Werte die ich vorher aus einem Formular ausgelesen habe diese Werte können mit Zahlen oder eben '' (also nichts) belegt werden.

    Trage ich nun für a1 = 2 , a2 = 2 und b1=5 in die Abfrage ein bekomme ich alle Datensätze angezeigt bei denen dies zutrifft da aber bei allen anderen
    folgendes steht

    or (c.US='DQ' and c.SRHGK = ''))

    bekomme ich diese nicht mehr angezeigt . Das ist ja auch korrekt da in der Datenbank kein Datensatz existiert der diesem Kriterum entspricht.

    Ich möchte aber das wenn meine Variablen lerrstrings sind das der Teil der SQL Abfrage weggelassen wird damit ich die Datensätze herausbekomme.

    Wie mache ich das am besten ich habe keine Ahnung wer kann helfen
Working...
X