2017-03-21 1 views
1

Ich habe eine One-to-Many Beziehung:One-to-Many-Abfrage für die Sammlung

public class Account{ 
    @OneToMany(cascade=CascadeType.ALL) 
    private List<Transaction>transactions = new ArrayList<>(); 
} 

public class Transaction{ 
    @ManyToOne 
    @JoinColumn(name="ACCOUNT_ID") 
    private Account account; 
} 

Ich möchte alle Accounts für ein User bekommen, und es funktioniert, aber Transaction Liste ist leer. Ist das eine Entitätszuordnung oder sollte ich meine Abfrage ändern?

I mit (leerer Transaktionsliste) gestartet:

TypedQuery<Account>query = em.createQuery("SELECT a FROM Account a WHERE a.user.id = ?1",Account.class); 

auch wie so zu verbinden versuchen (keine Konten überhaupt zurückgegeben):

TypedQuery<Account>query = em.createQuery("SELECT a FROM Account a JOIN a.transactions t WHERE a.user.id = ?1",Account.class); 

Was hier los?

Antwort

3

Es scheint, Sie mappedBy in der Annotation Eigenschaften hinzufügen vergessen:

@OneToMany(cascade=CascadeType.ALL, mappedBy="account") 
private List<Transaction>transactions = new ArrayList<>(); 
+0

Jawohl. Vielen Dank! – jarosik

+0

Keine Sorge. Schön, dass es für dich geklappt hat –

Verwandte Themen