Sziasztok!
A következő problémám van.
Van 3 osztály (a példa kedvéért), Autó, Kerék, Csavar. Az autónak vannak kerekei, a keréknek csavarjai (3 szintű tartalmazás)

JPA unidirectional kapcsolat van közöttük. Az Autóban kerékList, a kerékben csavarList


Autó.java

@OneToMany(targetEntity=Kerek.class ,cascade=CascadeType.ALL,orphanRemoval=true) @JoinColumn(name="AUTO_ID" ,referencedColumnName= "ID" )
private List<Kerek> kerekList= new ArrayList<Kerek>();

Kerek.java

@OneToMany(targetEntity=Csavar.class ,cascade=CascadeType.ALL,orphanRemoval=true) @JoinColumn(name="KEREK_ID" ,referencedColumnName= "ID" )
private List<Csavar> csavarList = new ArrayList<Csavar>();

Mivel unidirectional, ezért a tartalmazott osztályban nincs referencia a tartalmazó osztályra.
És a probléma.

Auto auto=new auto();
em.persist (auto) // itt még jó

Kerek kerek= new Kerek();
auto.getKerekList().add(kerek);
Csavar csavar=new Csavar();
kerek.getCsavarList().add(csavar);

em.merge(auto);//itt azt várnám, hogy az újonnan kapott listaelemeket, adott listaelemeket lementse.


Lementi, de a kerek-ben az AUTO_ID null, az auto id-ja helyett.
Tudjátok hogy miért van?
UI: bidirectional relationshippel, mindkét oldalról a relációt beállítva helyesen működik, jól kitölti az auto_id-t. undirectionalnál miért nem?

Előre is koszi a segítséget!