[Java lista] JPA 1.0 Kapcsoló tábla External Id-k
Verhás István
istvan at verhas.com
2009. Nov. 27., P, 15:22:33 CET
Nem az a problémája, hogy komplett entity vagy csak id hanem az fáj neki
a második megoldásban, hogy a
new A()
az nem egy menedzselt entitás hanem "csak" egy pojo. És gondolom, hogy a
cascade nincs megadva annotációban a persistre sem így ezzel nem tud mit
kezdeni.
Egyébként meg azt gondolom a kérdésed alapján, hogy még nem sikerült
elszakadni az adatbázis szintű gondolkodástól és áttérni az objektum
térbe. Ha meggondolod akkor ez a kapcsoló tábla ugye az objektum térben
nem is létezik, hanem n-m kapcsolat van az A és a B között. A kapcsoló
tábla csak a relációs adatbázis kezelőben szükséges egy n-m kapcsolat
kezeléséhez. Ennek megfelelően a JPA ezt el is rejti előled ha nem
akarsz vele foglalkozni. Ha más attributum a kapcsoló akkor azt elvileg
meg tudod adni annotációval és továbbra sem kell, hogy az objektum
térben legyen számodra direkt elérhető, kezelendő és plusz munkát adó
entitásod hozzá.
további részletek :
http://www.oracle.com/technology/products/ias/toplink/jpa/resources/toplink-jpa-annotations.html#JoinColumn
"Use the |@JoinColumn| annotation if: ... you want to join using a
column in the foreign table other than the primary key column"
üdv
vi
Szomor Attila wrote:
> Sziasztok,
>
> Van egy szabványos kapcsoló tábla két tábla között nem a PK a kapcsoló,
> hanem unique key mező (más cég PK-ja)
> class A {id, ..., ukA}, class B {id, ..., ukB} és class LinkAB { id, A, B
> }
> TableLinkAB (id, fkA, fkB)
>
> Ez jól működik:
> ---------------
> linkAB = new LinkAB();
> linkAB.setA(findAByUkA(uKeyValueA));
> linkAB.setB(findBByUkB(uKeyValueB));
> em.persist(linkAB);
>
> Ez nem működik:
> ---------------
> linkAB = new LinkAB();
> linkAB.setA(new A());
> linkAB.setA().setUkA(uKeyValueA);
> linkAB.setB(new B());
> linkAB.setB().setUkB(uKeyValueB);
> em.persist(linkAB);
>
> Miért kell find-al a komplett objektumot megkeresni, miért nem elég a
> kapcsoló mezőket kitölteni, ha az adatbázisban úgyis csak három ID van egy
> PK és két FK ?
> Nagyobb legyen a CPU terhelés, vagy mi ... ért ?
>
> Attila.
> Veled vagyunk JPA !
>
> _______________________________________________
> Javalist mailing list
> Javalist at javagrund.hu
> http://javagrund.hu/mailman/listinfo/javalist
>
>
--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: http://javagrund.hu/pipermail/javalist/attachments/20091127/ce80c943/attachment.html
További információk a(z) Javalist levelezőlistáról