AND-Verknüpfung in JPQL-Queries!

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Servus,

ick verzweifel gerade an einem JPQL-Query. Ick habe eine Entity-Klasse Customer die eine Liste von Orders hat. In der Klasse Orders steht der Wert der Bestellung. Zusätzlich verweisst Orders noch auf ein Klasse Description in der Datails gespeichet sind zB. die Position. Also kann nun ein Kunde mehere Bestellungen von einem bestimmten Wert haben und die Details kann man sich über die Beschreibung holen.

Nun würde ick gerne nach Kunden suchen, die für eine Spielzeugbestellung 100euro und für eine Autobestellung 500euro ausgegeben haben. Nun dachte ick mir sowas:

Code:
SELECT DISTINCT cust FROM Customer cust,
     IN(cust.order) orders
     WHERE orders.sale = 100 
     AND order.description.pos = 'toys' 
     AND orders.sale = 500 
     AND order.description.pos = 'cars'

Geht ja nicht, weil ja sales nicht gleichzeitig 100 und 500 sein kann. Wenn ich die Anfrage mit OR verknüpfe, bekomme ick ja alle Kunden die entweder die eine oder die ander Bestellung gemacht haben.

Code:
SELECT DISTINCT cust FROM Custumer cust,
     IN(cust.order) orders
     WHERE orders.sale = 100 
     AND order.description.pos = 'toys' 
     OR orders.sale = 500 
     AND order.description.pos = 'cars'

Ich würde aber gerne die haben bei denen genau das zutrifft.

PS: bin absoluter Datenbanken newbe.
 
S

SlaterB

Gast
und kannst doch keine Vermutungen anstellen, wie die DB das auswerten wird

a & b oder c & d
kann sein:

a & (b oder c) & d
oder auch
(a & b) oder (c & d)
oder sonst was krummes,

setze selber Klammern um das festzulegen!


-----

oder du hast ein komplexeres Problem, dann brauchst du einen Join:

from User x, Tabelle a, Tabelle b
where x mit a verknüpft und a hat Bedingung 1
sowie x mit b verknüpft und b hat Bedingung 2
 
R

reweiss

Gast
Hallo,

ich hatte vor kurzem das gleiche Problem. Mein Lösungsweg auf dein Beispiel angewendet würde ungefähr so aussehen:
Code:
SELECT DISTINCT cust FROM Customer cust,
     IN(cust.order) orders1,
     IN(cust.order) orders2
     WHERE orders1.sale = 100
     AND orders1.description.pos = 'toys'
     AND orders2.sale = 500
     AND orders2.description.pos = 'cars'

Damit sollte es gehen. Ob das ganze performant ist und vorallem wie man es performanter machen kann, ist eine andere Frage ;-)

LG
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Jamie logische Verknüpfung zur Schaltjahr-Berechnung Java Basics - Anfänger-Themen 30
S Verknüpfung von Arraylisten Java Basics - Anfänger-Themen 3
B Erste Schritte Problem bei der Verknüpfung von zwei klassen Java Basics - Anfänger-Themen 8
R Klassen Klassen Verknüpfung Java Basics - Anfänger-Themen 6
W Verknüpfung von Räumen mit Hashset Java Basics - Anfänger-Themen 10
OnDemand XOR ^ Verknüpfung Java Basics - Anfänger-Themen 3
J Verknüpfung von JButton to JTextField Java Basics - Anfänger-Themen 4
Y Erste Schritte Verknüpfung zweier JAVA-Codes Java Basics - Anfänger-Themen 8
S Verknüpfung von .java Java Basics - Anfänger-Themen 4
sqsh logische verknüpfung Java Basics - Anfänger-Themen 3
A XOR Verknüpfung Java Basics - Anfänger-Themen 5
A Java Verknüpfung Java Basics - Anfänger-Themen 8
F Verknüpfung erstellen Java Basics - Anfänger-Themen 7
K Erstellen einer Verknüpfung Java Basics - Anfänger-Themen 3
A lnk (Verknüpfung) in java Java Basics - Anfänger-Themen 10
A Oder Verknüpfung in do-Schleife Java Basics - Anfänger-Themen 2
K Verknüpfung von zB Tabellenzeilen mit Objekten. Java Basics - Anfänger-Themen 5
B Java "AND" Verknüpfung (ok) Java Basics - Anfänger-Themen 7
P Verknüpfung von Tabellen Java Basics - Anfänger-Themen 7
thE_29 visual basic verknüpfung in java Java Basics - Anfänger-Themen 3
C JPQL-Query like Java Basics - Anfänger-Themen 5
cowabunga1984 JPQL Query erstellen Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben