Oggetto persistente al database con ORM
Domanda
All'interno di una classe di entità, posso avere qualsiasi oggetto come attributo e quando persistono l'entità al database, persisterà anche gli attributi degli oggetti?
Soluzione
Se l'oggetto è serializzabile, è possibile serializzarlo come BLOB.Ma non è qualcosa che vuoi fare perché
- .
- sarebbe inefficiente per serializzare e deserializzare costantemente l'oggetto
- Sarebbe molto fragile: un cambiamento nella classe dell'oggetto renderebbe impossibile (o difficile se sai cosa stai facendo) per leggere le versioni precedenti già salvate nel database
- Solo Java potrebbe dare un senso al BLOB
- Non è possibile fare alcuna query su questo oggetto
Così, in pratica, la risposta è no.Le entità JPA possono avere oggetti incorporati, i cui campi sono mappati alle colonne o possono avere associazioni con altre entità (Onetoone, Onetomany, Manteone o ManyTomany).
Il mio consiglio: Pensa prima della progettazione del tuo database, quindi mappare lo schema alle entità JPA.Se inizi a scrivere un modello oggetto senza nemmeno pensare come sarà persisteva nel database, non andrai molto lontano.