Objet persistant à la base de données avec orm
Question
Au sein d'une classe d'entités, puis-je avoir un objet en tant qu'attribut et lorsque je persiste l'entité à la base de données, il persiste également d'attributs d'objets?
La solution
Si l'objet est sérialisable, vous pouvez le sérialiser comme une blob.Mais ce n'est pas quelque chose que vous voulez faire parce que
- Il serait inefficace de sérialiser constamment et de désérialiser l'objet
- Ce serait très fragile: une modification de la classe d'objet rendrait impossible (ou si vous savez si vous savez ce que vous faites) pour lire les versions précédentes déjà enregistrées dans la base de données
- Seul Java pourrait donner un sens à la blob
- Vous ne pouviez pas faire de requête sur cet objet
Donc, essentiellement, la réponse est non.Les entités JPA peuvent avoir des objets embarqués, dont les champs sont mappés sur des colonnes ou peuvent avoir des associations avec d'autres entités (OneSoone, OneTomanany, Homtoone ou MétéoTomanany).
Mon conseil: Pensez d'abord à la conception de votre base de données, puis cartographier le schéma aux entités JPA.Si vous commencez à écrire un modèle d'objet sans même penser à la manière dont il sera persisté dans la base de données, vous n'irez pas très loin.