Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[EJB-QL] Twee ManyToMany relaties vergelijken

Pagina: 1
Acties:

  • Psyed
  • Registratie: Oktober 2003
  • Laatst online: 19-07 11:58
Hoi mensen,

Ik probeer een query te doen op een database waarbij twee lijsten met elkaar worden vergeleken. Onderstaande tabellen geven weer hoe de relaties liggen.

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class EntityA {
...

  @ManyToMany
  @JoinTable(...)
  private List<EntityC> linkedEntities;

...
}

public class EntityB {
...

  @ManyToMany
  @JoinTable(...)
  private List<EntityC> linkedEntities;

...
}

public class EntityC {
...
}


Mijn bedoeling is om alle records uit EntityB op te vragen waarvan alle linkedEntities ook te vinden zijn in de linkedEntities van EntityA.

Omdat dit misschien vaag klink zijn hier nog wat voorbeelden van wat ik exact wil berijken:

EntityA heeft de volgende linkedEntities:
- Euro
- Dollar
- Yen

EntityB (record 1) heeft:
- Euro

EntityB (record 2) heeft:
- Euro
- Yen
- Noorse Kronen

Entity B (record 3) heeft:
- Euro
- Dollar
- Yen
- Noorse Kronen

Entity B (record 4) heeft:
- Euro
- Dollar
- Yen

Van de records uit EntityB wil ik in dit geval alleen records 1 en 4 terug hebben omdat de volledige lijst en EntityB.linekdEntities terug te vinden is in EntityA.linkedEntities

De huidige query die ik heb is:
SQL:
1
SELECT b FROM EntityB b, EntityC c WHERE c IN (:link) AND c MEMBER OF b.linkedEntities

(:link is wordt gezet via setParameter op de query en is afkomstig uit EntityA)

Edits:
- Kleine tikfouten verbeterd
- Foutje uit voorbeeld gehaald

Whoops, titel is echt vreemd, kan ik zeker niet aanpassen? -_-'

[ Voor 5% gewijzigd door Psyed op 26-10-2012 15:02 ]


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Psyed schreef op vrijdag 26 oktober 2012 @ 14:56:
Whoops, titel is echt vreemd, kan ik zeker niet aanpassen? -_-'
Als je een in een Topic Report een voorstel doet voor een andere titel wordt passen we dat voor je aan.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”