Zdravim,

mohli by Ste presnejsie zadefinovat, co znamena "nefunguje"?

1) Hibernate hadze vynimku?
2) Pri nacitani sa Vam mapovane objekty inicializuju na null?
3) Alebo pri perzistencii "rodicovskej" entity sa Vam neulozi ten "potomok"?

Vzhladom na to, ze ide o zdielany primarny kluc, tak by som napisal nieco
ako (bez vyskusania, ale takto som to pouzival):

@Entity
public class Vykaz implements Serializable {
   @Id
   private Long idvykaz;

   //optional = true -> nemusi existovat korespondujuci riadok
   //cascade = CascadeType.ALL -> zafunguje kaskada pri vsetkych JPA
operaciach
   @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER, optional =
true)
   @PrimaryKeyJoinColumn // pripadne pouzit @JoinColumn, ak pojde o cudzi
kluc
   private VykazKontrola kontrola;
}

@Entity
public class VykazKontrola implements Serializable {
   @Id
   private Long idvykaz;

   public VykazKontrola() {};

   public VykazKontrola(Vykaz vykaz) { this.vykaz = vykaz; };

   @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER,
mappedBy="kontrola") //toto umozni bidirectional mapovanie
   private Vykaz vykaz;
}

Nikdy som sa nestretol s tym, ze by @PrimaryKeyJoinColumn bolo nad oboma
atributmi. Netusim vsak, ci to moze sposobit problem.

Precitajte si este tento prispevok. Usetri mi to dalsich par riadkov;)
https://forum.hibernate.org/viewtopic.php?p=2398781

S pozdravom Roman.

2010/1/14 Pavel Zelenka <zele...@mediaservis.cz>

> Zdravim,
>
> mohli byste mi poradit jak spravne provest JPA mapovani nasledujicich
> tabulek?
>
> tabulka VYKAZ
> idvykaz
> popis
>
> tabulka VYKAZ_KONTROLA
> idvykaz
> datum
>
> k řádku v tabulce VYKAZ může existovat 1 nebo žádný řádek v tabulce
> VYKAZ_KONTROLA
> nasledujici mapovani nefunguje
>
> @Entity
> public class Vykaz implements Serializable {
>
>     @Id
>     private Integer idvykaz;
>     @OneToOne
>     @PrimaryKeyJoinColumn
>     private VykazKontrola kontrola;
> ....
>
> @Entity
> @Table(name = "vykaz_kontrola")
> public class VykazKontrola implements Serializable {
>
>     @Id
>     private Integer idvykaz;
>     @OneToOne(fetch = FetchType.EAGER, mappedBy="kontrola")
>     @PrimaryKeyJoinColumn
>     private Vykaz vykaz;
>
> Díky za pomoc
>
> Pavel Zelenka
>

Odpovedet emailem