Ahoj,
je nutné používat u obousměrných relací mappedBy="", v tabulce AppUser má být:
@OneToMany(mappedBy="appUser")
Subscription subscription;

v Subscription:
@ManyToOne
AppUser appUser;

Pokud se nepoužije mappedBy, vytvářejí se duplicitní vazby, které již existují.

On 21.9.2009 17:26, Petr Fejfar wrote:
Dne Mon, 21 Sep 2009 17:11:15 +0200 Rastislav Siekel <sie...@prosoft.sk>
napsal/-a:


Znamena to, ze to bez doplneni stare tabulky
o vazbu @ManyToOne nejde?
Presne tak. (Len pre istotu - nedopĺňaš väzbu do tabuľky, len do jej
mapovania. Žiadna fyz. väzba tam byť nemusí.)

No tak tomu prestavam rozumet:

* puvodne jsem mel @OneToMany AppUser.subscription,
coz fyzicky udelalo join table user_subscription s id zazanmu

* kdyz jsem doplnil @ManyToOne Subscription.user abych mel
obousmernou asociaci, tak mi to fyzicky pridalo foreign key
do tabulky subscription, i kdyz by nemelo/nemuselo,
protoze vse potrebne ma v te join table

* kdyz jsem zkousel vnutit mu tu existujici join table
jejim specifikovanim pomoci @JoinTable, tak hbm2ddl
narazil na nejake FK constraints - nevim, co s tou tabulkou
join table chtel udelat, tak jsem prozatim rezignoval
a nechal tam ten FK.




A proc mi nejde to odzkousene SQL te nenapada?
To bude asi niečo triviálne - v mapovaní existuje h.id, ale v tom
SELECT-e nie je v select-liste, alebo niečo podobné.

To je mozne, ale nic takoveho nevidim. Vsude pouzivam kvalifikovane
odkazy s aliasy tabulek a result set mam:

sql.append("select h.*");



P.S. Len na okraj - nemaž z mailu pôvodné texty - je to rýchlejšie ako
pozerať sa do starých mailov, aký vlastne bol pôvodný SQL... :-)


To slysim/ctu poprve - vetsinou se chce, aby se psalo bez nabodenicek
a quotovalo. U toho bych zustal, ale priste tam ten SQL sam znovu
zkopiruju.

Diky, pf

Odpovedet emailem