JPA JPQL Erklärung.

lusitano

Aktives Mitglied
Servus

Ich habe zum Testen mir zwei Klassen in einer OneToMany Beziehung erstellt.
Code:
@Entity
@Table(name = "PERSON")
public class Person {

    @Id
    @GeneratedValue
    private Long personID;
    private String personName;
   
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "person")
    private Set<PersonAdress> personAdresses = new HashSet<PersonAdress>();
und
Code:
@Entity
@Table(name = "PERSONADRESS")
public class PersonAdress {

    @Id
    @GeneratedValue
    private Long personAdressID;
    private String adressStreet;
   
    @ManyToOne
    @JoinColumn(name = "personID")
    private Person person;

Als Ergebnis erhalte ich
person.png personadress.png
soweit müsste auch alles stimmen.
Nun müsste ich eine Abfrage erstellen die ungefähr so aussehen müsste
Zeig mir zu personID 1 alle adressStreet Einträge an

Ich weiß das ich hier auf der Objekt eben bin aber ich bekomme die jpql select nicht hin.

Könnte mir jemand so ein select zusammen bauen und vielleicht ne Erklärung dazu schreiben ?

Vielen Dank schon mal.
 

Flown

Administrator
Mitarbeiter
Warum nicht einfach die Person selektieren und dann die Adresse rausholen (der Code ist sinngemäß):
Java:
Person p = em.find(1L, Person.class);
Set<PersonAdress> addresses = p.getPersonAdresses();

Oder auch in JPQL kannst du es anders machen:
Java:
from PersonAdress p where p.person.personID=:id
und bastelst dir dann die query mit dem EntityManager zusammen.
 

Ähnliche Java Themen


Oben