Hallo,
ich benutze für ein Schulprojekt OpenJPA 2.2.2 und muss eine ManyToMany Beziehung
mit einer zusätzlichen Spalte in der Join Table abbilden. Ich habe das Problem, das ich aber nur
Werte aus der Tabelle "Auftrag" erhalte, jedoch keine aus Artikel und gar nix aus der JoinTable.
Der Aufruf lautet:
Im Anhang der Quellcode
Klasse Artikel:
Klasse Auftrag
Join Table Klasse AuftragHasArtikel
ich benutze für ein Schulprojekt OpenJPA 2.2.2 und muss eine ManyToMany Beziehung
mit einer zusätzlichen Spalte in der Join Table abbilden. Ich habe das Problem, das ich aber nur
Werte aus der Tabelle "Auftrag" erhalte, jedoch keine aus Artikel und gar nix aus der JoinTable.
Der Aufruf lautet:
Java:
@Override
public List<Auftrag> leseAlleAuftraege() {
List<Auftrag> auftragListe;
EntityManager em = emf.createEntityManager();
CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery<Auftrag> query = builder.createQuery(Auftrag.class);
Root<Auftrag> root = query.from(Auftrag.class);
query.select(root);
auftragListe = em.createQuery(query).getResultList();
em.close();
return auftragListe;
}
Im Anhang der Quellcode
Klasse Artikel:
Java:
@Entity
@Table(name = "artikel")
@XmlRootElement(name = "artikel")
public class Artikel {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "idArtikel")
private int artikelId;
@OneToMany(mappedBy="artikel")
private List<AuftragHasArtikel> auftragListe;
@Column(name = "Artikelname")
private String artikelName;
@Column(name = "Artikelbezeichnung")
private String artikelBezeichnung;
@Column(name = "Preis")
private float artikelPreis;
@Column(name = "Download")
private boolean isDownload;
//Getter und Setter...
}
Java:
package de.hhbk.entity;
import java.util.Date;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@Entity
@Table(name = "Auftrag")
@XmlRootElement
public class Auftrag {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int idAuftrag;
@Column(name = "datum")
@Temporal(TemporalType.DATE)
private Date datum;
@OneToMany(mappedBy="auftrag")
private List<AuftragHasArtikel> artikel;
//Getter und Setter
}
Java:
@Entity
@Table(name = "auftrag_has_artikel")
@IdClass(AuftragHasArtikelId.class)
@XmlRootElement
public class AuftragHasArtikel {
@Id
@Column(name = "Auftrag_idAuftrag")
private long idAuftrag;
@Id
@Column(name = "Artikel_idArtikel")
private long idArtikel;
@Column(name = "Anzahl")
private int anzahlArtikel;
@Column(name = "Preis")
private float artikelPreis;
@ManyToOne
@JoinColumn(name = "Artikel_idArtikel", referencedColumnName = "idArtikel")
private Artikel artikel;
@ManyToOne
@JoinColumn(name = "Auftrag_idAuftrag", referencedColumnName = "idAuftrag")
private Auftrag auftrag;
}
Zuletzt bearbeitet: