Hallo alle zusammen,
aktuell beschäftige ich mich ein wenig mit JPA (EclipseLink). Jetzt stoße ich auf ein Problem in den Abhängigkeiten.
Ich demonstriere das mal in einem Beispiel:
Mein Problem ist, ich möchte über meine Update.class einen Spieler für ein Spiel hinzufügen. Jedoch bekomme ich jedes Mal eine Fehlermeldung, es gäbe nichts zu commiten. Muss ich den EntityManager im Konstruktor an "Spiel" weitergeben und dort die Transaction machen, wenn "beitreten" aufgerufen wird?
Danke allen schon mal!
aktuell beschäftige ich mich ein wenig mit JPA (EclipseLink). Jetzt stoße ich auf ein Problem in den Abhängigkeiten.
Ich demonstriere das mal in einem Beispiel:
Java:
public class Update {
Spieler spieler = new Spieler("Testspieler");
public static void main(String[] args) {
settings.setProperty("javax.persistence.schema-generation.database.action", "create");
emfactory = Persistence.createEntityManagerFactory("MeinePU", settings);
em = emfactory.createEntityManager();
em.getTransaction().begin();
Spiel spiel = em.find(Spiel.class, 1);
spiel.beitreten(spieler);
em.persist(spiel);
em.getTransaction().commit();
em.close();
emfactory.close();
}
}
Code:
@Entity
public class Spiel {
@Id
private int id;
@OneToMany(mappedBy = "spiel")
private List<Spieler> spieler;
public Spiel(int id) {
this.id = id;
}
public Spiel() {
this.id = 0;
}
public List<Spieler> getSpieler() {
return spieler;
}
public void beitreten(Spieler spieler) {
getSpieler().add(spieler);
}
}
Code:
@Entity
public class Spieler {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@Column(length = 25)
private String name;
@ManyToOne
private Spiel spiel;
public Spieler(String name) {
this.name = name;
}
public Spieler() {
this.name = "Testspieler";
}
}
Mein Problem ist, ich möchte über meine Update.class einen Spieler für ein Spiel hinzufügen. Jedoch bekomme ich jedes Mal eine Fehlermeldung, es gäbe nichts zu commiten. Muss ich den EntityManager im Konstruktor an "Spiel" weitergeben und dort die Transaction machen, wenn "beitreten" aufgerufen wird?
Danke allen schon mal!