- Huawei P30 Pro - teletalálat
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
- Xiaomi 14T Pro - teljes a család?
- Samsung Galaxy S23 Ultra - non plus ultra
- Okosóra és okoskiegészítő topik
- Google Pixel 10a – évismétlés
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- iPhone topik
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Samsung Galaxy S25 - végre van kicsi!
Ú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?:))
- LG 27G640A-B - 27" IPS / QHD 2K / 300Hz & 1ms / NVIDIA G-Sync / FreeSync / DisplayHDR 400
- Xbox One S All Digital eladó!
- Apple iPhone 11 / 128GB / Kártyafüggetlen / 12Hó Garancia / Akku:100%
- Apple iPhone 11 Pro / 64GB / Kártyafüggetlen / 12HÓ Garancia / Akku: 90%
- iPhone 11 Pro Max / 64GB / Kártyafüggetlen / 12Hó Garancia / Akku:82% Face ID nem müködik
- HP 255 G8 - 15.6" FullHD IPS - Ryzen 5-5500U - 8GB - 512GB SSD - Win11 - MAGYAR - ÚJ AKKU
- iPhone 17 256 GB Levander - Bontatlan !! www.stylebolt.hu - Apple eszközök és tartozékok - Számlás
- Apple iPhone 16 Plus Pink 128GB használt karcmentes 94% akku (316 ciklus) 6 hónap garancia
- Új Kipsta agility 100 focicipő (43-as)
- GYÖNYÖRŰ iPhone 13 128GB Red-1 ÉV GARANCIA - Kártyafüggetlen, MS4373, 100% Akkumulátor
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

