Mapping SQL View to JPA Entity

dans mon projet de développement, j'utilise JPA (hibernate) comme technologie de cartographie pour accéder aux bases de données. J'ai parfois frappé des problèmes de performance et des difficultés techniques lorsque je mappage DB table à des entités directement pour les relations complexes.

je trouve qu'une solution consiste à mapper la vue DB aux entités JPA. Cela rend le codage plus facile et parfois la performance est meilleure. Pensez-vous que C'est un modèle anti-patron de L'utilisation de JPA de cette façon?

18
demandé sur Boris 2012-07-04 14:12:13

2 réponses

Ce n'est pas une solution et pas un anti-modèle. Il y a un sujet sur mappage des Entités JPA pour les Vues SQL. Il vous donne suffisamment de renseignements pour utiliser cette méthode ou non.

personnellement, je préfère les classes Java, et donc j'utilise Classes De Résultat Expression Du Constructeur. Il instancie et popule des objets de la classe fournie basée sur le retour de requête de résultats.

Vous pouvez voir ces deux méthodes qui augmente performance et réduit la complexité de la structure.

12
répondu JMelnik 2012-07-04 12:38:21

j'ai eu un problème avec le lien jmelnik gentiment fourni: J'ai créé la requête complexe comme une vue dans Javadb, puis j'ai essayé de faire glisser la vue sur la forme, mais Netbeans ne me permettait pas de la laisser tomber (donc je ne pouvais pas autocréer la table liée. J'ai vu sur ce lien que je ne suis pas le seul à avoir vécu ça.

la Solution qui a fonctionné pour moi:

Créer un Affichage en db, pour votre SQL complexe avec des Jointures

"Créer une entité de la base de données" dans des entités paquet, et le nom qu'il xxxViewName

  • assurez-vous qu'un champ de l'entité est identifié comme clé, en ajoutant "@Id" au-dessus.

Créer java persistence query dans le Navigateur :

  • S'assurer que la conception du formulaire est visible, puis cliquez avec le bouton droit de la souris sur "Autres composants" dans Navigator, et choisissez Ajouter à partir de la Palette > Java Persistence > Query

  • configurer la requête: N'utilisez pas l'habituel "show xxxViewName" (qui échoue parce que JPA ne soutien show). Utilisation Sélectionnez w à partir de xxxViewName w

Créer java persistence Liste de résultats dans le Navigateur :

  • similaire à la création de la requête. Assurez-vous de définir les paramètres de type de List à

liez votre JTable à la liste.

0
répondu student 2017-01-31 08:02:40