Problème des classes abstraites avec les DB.

Fermé
PetitGenie2018 Messages postés 1 Date d'inscription lundi 9 avril 2018 Statut Membre Dernière intervention 9 avril 2018 - 9 avril 2018 à 13:52
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 10 avril 2018 à 13:29
Bonjour, est-ce possible d'ajouter une classe abstraite Java dans une base de données ?
A voir également:

1 réponse

Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
10 avril 2018 à 08:56
Bonjour,

Une base de données n'a pas vocation à contenir des classes, abstraites ou non... Une base de données sert à assurer la persistance de valeurs et d'objets instanciés.
Si tu as un objet instancié d'une classe dérivant de ta classe abstraite, tu peux très bien l'enregistrer en base comme n'importe quel objet.

Du coup j'ai un peu du mal à comprendre ce que tu veux faire exactement. Pourrais-tu préciser concrètement ? Et si tu utilises un ORM, dis lequel.

Xavier
0
petitgenie2018
10 avril 2018 à 12:19
Au fait dans ma modélisation j'ai la classe PRODUIT (que déclarée abstraite), et puis les classes ŒUF et FUMIER qui héritent de PRODUIT, maintenant je voudrais savoir s'il est possible de mettre ma classe PRODUIT qui est abstraite (donc qu'on ne peut pas instancier) dans la base de données.
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
Modifié le 10 avril 2018 à 13:30
Le problème, c'est que si tu mets un PRODUIT en base de données, quand tu le reprendras, tu ne sauras plus si c'est un produit ŒUF ou FUMIER...
Donc tu vas forcément être obligé de créer une table (ou des colonnes) dédiées à œuf et à fumier.
Mais, oui, ça peut se faire en gardant la logique d'héritage, avec une table PRODUIT qui contient les colonnes de produit, puis une table œuf qui contient les colonnes d’œuf et une colonne de référence 1..1 avec la table produit (et idem pour fumier).
0