při pokusu o persist objektu Vykaz to pořád neplnilo pole idvykaz nicméně 
už jsem se dobral funkčního výsledku:

@Entity 
public class Vykaz implements Serializable { 

    @Id 
    @Column(name="idvykaz")
    private Integer idvykaz; 
    @OneToOne(fetch = FetchType.EAGER, cascade=CascadeType.ALL, 
mappedBy="vykaz")
    private VykazKontrola kontrola; 
.... 

@Entity 
@Table(name = "vykaz_kontrola") 
public class VykazKontrola implements Serializable { 

    @Id 
    @Column(name="idvykaz", insertable=false, updatable=false)
    private Integer idvykaz; 
    @OneToOne
    @JoinColumn(name="idvykaz", referencedColumnName="idvykaz")
    private Vykaz vykaz; 





Od:
Roman Zakutny <[email protected]>
Komu:
Java <[email protected]>
Datum:
14.01.2010 11:22
Předmět:
Re: OneToOne mapovani
Odeslal:
[email protected]



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 <[email protected]>
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