Hallo,
ich arbeite mich gerade in JPA und Hibernate ein. Nun habe ich ein Problem.
Ich habe 2 Klassen, diese Klassen (K1 und K2) haben eine bidirektionale OneToMany Beziehung. Mit anderen Worten K1 hat eine Liste von K2.
Jetzt erstelle ich eine Beispiel K1 Objekt und möchte das für queryByExample verwenden. In der Datenbank habe ich einen K1 Eintrag. Wenn nur ein K2 Eintrag in der Datenbank ist, dann funktioniert alles Wunderbar. Sobald mehrere K2 Einträge vorhanden sind, bekomme ich für jeden K2 Eintrag ein K1 Objekt.
Mein code sieht so aus:
Code:
@Entity
public class K1 implements java.io.Serializable {
@Id
@GeneratedValue (strategy = GenerationType.AUTO)
private Long id;
private String text1;
private String text2;
@OneToMany(cascade=CascadeType.ALL,mappedBy ="kk1",fetch=FetchType.EAGER)
private List<K2> k2s = new ArrayList<K2>();
....
}
@Entity()
public class K2 implements Serializable{
@ManyToOne
@JoinTable (name="K1_TO_K2")
private K1 kk1;
}
Für die Abfrage nutze ich folgende Funktion:
Code:
public List<K1> findByExample(K1 k1){
EntityManager em = super.getEntityManager();
List<K1> k1s = null;
try {
Session session = (Session) em.getDelegate();
Example exampleK1 = Example.create (k1);
users = session.createCriteria(K1.class)
.add(exampleK1)
.list();
} catch (Exception e) {
e.printStackTrace();
em.getTransaction().rollback();
}
return k1s;
}
Weiß jemand woran das liegt?
gruß
docci