- Milyen okostelefont vegyek?
- Samsung Galaxy A54 - türelemjáték
- iPhone topik
- Android alkalmazások - szoftver kibeszélő topik
- Rendkívüli terméktámogatást ígér a Nothing
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Yettel topik
- Google Pixel topik
- Hivatalos a OnePlus 13 startdátuma
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
Ú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?:))
- Egyre csak fejlődik az AI, emberek tízezreit rúgja majd ki a BT
- Wise (ex-TransferWise)
- Milyen okostelefont vegyek?
- Vicces képek
- A világ leggyorsabb SRAM dizájn-ját kínálja a Marvell
- Egyéni arckép OFF
- Samsung Galaxy A54 - türelemjáték
- Linux kezdőknek
- OLED TV topic
- Nintendo 3DS és DS topic
- További aktív témák...
- Telefon felvásárlás!! Samsung Galaxy S23/Samsung Galaxy S23+/Samsung Galaxy S23 Ultra
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RTX 5070Ti 16GB GAMER PC termékbeszámítással
- ÁRGARANCIA!Épített KomPhone i5 14600KF 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Eredeti Lenovo 230W töltők - 4X20Z83995
- Üzleti Fujitsu Lifebook u7510 15,6" FHD IPS 2021/08. havi gyártás
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest