J'ai une classe abstraite annotée avec @MappedSuperClass
. Il y a environ 15 entités qui étendent cette classe abstraite (ayant 15 tables correspondantes dans la base de données). Les 15 entités ont toutes les mêmes attributs hérités de la super classe abstraite.Spring Data JPA inheritance dans des référentiels
J'ai créé un référentiel comme ci-dessous pour la classe abstraite:
@NoRepositoryBean
public interface AbstractRepository <T extends AbstractClass, E extends Serializable>
extends PagingAndSortingRepository<T, Serializable> {
.....some methods here
}
Les 15 entités/tables stockent des données (données relatives à 15 équipements distincts). En fonction de l'équipement sélectionné, les données de cette table doivent être récupérées. Devrai-je créer 15 dépôts distincts pour les 15 entités concrètes ou existe-t-il un moyen d'obtenir l'entité spécifique pour l'équipement sélectionné en utilisant uniquement le référentiel abstrait? Si des référentiels doivent être créés pour chaque entité concrète, comment obtenir le bon référentiel pour l'appel d'équipement spécifique? (stocker le nom de table et la classe de référentiel dans une carte créée au démarrage de l'application peut-être?)
Merci @Joseph pour la clarification. Puisque des référentiels pour chaque équipement devront être créés, quelle est la meilleure façon d'obtenir l'instance de référentiel pour un équipement spécifique?Une façon est de lier automatiquement tous les 15 dépôts et un boîtier de commutation pour utiliser l'instance référentiel approprié en fonction de l'équipement passé (quelque chose comme une usine pour retourner le dépôt correct) –
j'éviter d'utiliser un commutateur car cela devrait être maintenu , vous pouvez '@ Autowire' une carte où la clé est le type, et la valeur est le type de référentiel. –