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.
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:
(: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? -_-'
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 ]