vobord1 napsal(a):
Vim ze to neni v DB objektove spravne, db jsem nenavrhoval, bohuzel stim nic neudelam a musim pracovat stim co mi daji. - zkusim jim ale domluvit :)

Integer nebo Long by nejspise stacil .... ma to nejaky znatelny vliv na aplikaci?

V DB by se měl vygenerovat i cizí klíč.

mapovani v jave se nepromitne do db, takze cizi klic v DB nebude

nyni mam namapovany @Column private Integer idCiselnik; a veskere vazby musim hledat. Mapovani s @ManyToOne fungovalo castecne, jen nevim proc mi po ulozeni vracely objekty null
diky za reakce

Mapování ManyToOne vytvoří cizí klíč. Pokud přidáte JoinColumn, tak můžete pojmenovat i sloupeček v DB.

např.

@Table(name="ciselnik_test")
@Entity()
public class Ciselnik implements Serializable{
  @Id()
  private Integer id;
// ...
}


@Table(name="osoba_test")
@Entity()
public class Osoba implements Serializable{
  @Id()
  private Integer id;

 @ManyToOne()
 @JoinColumn(name="ciselnik_id")
 private Ciselnik ciselnik;
// ...
}

Tabulka osoba_test bude vypadat takto - (výpis z postgresql):

    Tabulka "public.osoba_test"
  Sloupec   |   Typ   | Modifikátory
-------------+---------+--------------
id          | integer | not null
ciselnik_id | integer |
Indexy:
   "osoba_test_pkey" PRIMARY KEY, btree (id)
Podmínky cizího klíče:
"osoba_test_ciselnik_id_fkey" FOREIGN KEY (ciselnik_id) REFERENCES ciselnik_test(id)


Je tedy možné napsat entity tak, aby odpovídaly již existujícímu schématu v DB!

Doporučuji přečíst část EJB-persistence specifikace - Relationship mapping od kapitoly 2.1.8 (od str. 25)
http://jcp.org/aboutJava/communityprocess/final/jsr220/index.html

nebo toto
http://java.boot.by/scbcd5-guide/ch05s04.html

Fafi

Odpovedet emailem