Hirdetés
- Honor Magic6 Pro - kör közepén számok
- Bemutatkozott a Poco X7 és X7 Pro
- EarFun Air Pro 4+ – érdemi plusz
- Yettel topik
- Poco F8 Pro – titkos favorit lehet belőle
- Okosóra és okoskiegészítő topik
- Telekom mobilszolgáltatások
- Így nézhet ki a Huawei Pura 90
- Samsung Galaxy Watch8 és Watch8 Classic – lelkes hiperaktivitás
- OnePlus 15 - van plusz energia
Új hozzászólás Aktív témák
-
floatr
veterán
válasz
Tothg86
#12059
üzenetére
Valahogy így:
@Embeddable
public class AccountId {
private String accountNumber;
private String accountType;
...
}
@Entity
public class Account {
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name="accountNumber", column=@Column(name="account_number")),
@AttributeOverride(name="accountType", column=@Column(name="account_type"))
})
private AccountId id;
...
}az @AttributeOverrides szekciót azért tettem bele, mert ezzel pontosan el tudod nevezni a DB mezőket. A hibernatenek van olyan NamingStrategy-je (jpa/component-path), hogy hajlamos elécsapni a generált neveknek prefixként azt, hogy "id_"
-
floatr
veterán
válasz
Tothg86
#12057
üzenetére
Ebben a cikkben leírnak két lehetőséget, de én is használok több munkahelyi projekten összetett kulcsot. Az EmbeddedId-t javaslom, de pár dolgot nem árt észben tartani.
Az ID-t így te adod meg, nem a hibernate generálja. Emiatt egy új rekord mentésénél (save/saveOrUpdate) a hibernate egy selectet fog kiadni, hogy leellenőrizze, van-e már azzal a kulccsal adat a DB-ben. Ezt ki lehet kerülni mondjuk egy EntityManager.persist(...) hívással egy custom repo implementációban, ha te tudod garantálni a PK egyediségét. Ha sok adatot importálsz, problémát tud okozni.
Az ilyen táblák általában kapcsoló/kapcsolatleíró táblák, és az összetett kulcs elemei külső kulcsok (FK), amik más táblákra mutatnak. Ilyenkor a hibernate csak trükközve tudja leírni a relációt másodlagos mappeléssel, vagy a kulcsban mappelt relációval, bár nem mindig van szükség arra, hogy össze tudj kapcsolni kódban is két objektumot. -
floatr
veterán
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- 8 ÉV GARANCIA! Seasonic Vertex PX 1200W 80 PLUS Platinum Full moduláris tápegység.
- GIGABYTE GeForce RTX 5080 AORUS MASTER 16GB GDDR7 256bit 3+1 év Alza garancia
- NZXT Kraken 360 (RL-KN360-B1) GARANCIA MÉG 50 HÓNAP!
- Samsung Galaxy tab A8 SM-X200 10,5 " tablet
- 480-512GB bontatlan M.2 NVMe SSD-k eladók GARANCIÁVAL/SZÁMLÁVAL (a Te nevedre kiállítva)!
- HIBÁTLAN iPhone 14 128GB Blue-1 ÉV GARANCIA - Kártyafüggetlen, MS4430, 100% Akksi
- Új Lenovo 14 Slim 5 WUXGA OLED Ultra7 155H 16mag 32GB 1TB SSD Intel ARC 8-Core iGPU Win11 Garancia
- HIBÁTLAN iPhone 12 Mini 64GB White -1 ÉV GARANCIA - Kártyafüggetlen, MS3644
- Samsung Galaxy A05s 128GB, Kártyafüggetlen, 1 Év Garanciával
- ÁRGARANCIA!Épített KomPhone Ryzen 7 9800X3D 32/64GB RAM RTX 5070Ti 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs


