2017-05-08 1 views
0

Voici ce que j'essaie de faire: 1. Envoyez un HQL pour remplir l'objet Hibernate "User". 2. Envoyez un SQL natif pour extraire un jeu de données plus petit d'une très grande colonne de données de la table "User". 3. Mélanger l'objet Hibernate mappé avec le résultat de la colonne de l'étape 2.Combiner le résultat Hibernate ResultTransformer avec l'objet Hibernate d'origine

je lis que ResultTransformer peut être utilisé pour cartographier l'ensemble de résultats de 2 à une entité Hibernate, qui dans mon cas, l'entité « Utilisateur ». Est-il possible d'insérer les résultats du mappage ResultTransformer à mon entité utilisateur d'origine?

Voici un exemple: 1. HQL - From User. Nous utilisons le fichier de mapping Hibernate pour User et en utilisant Bytecode Enhancement, nous mettons "xmlStringColumn paresseux = true". String hql = "Utilisateur FROM"; Liste utilisateurs = session.createQuery (hql) .list(); 2. nous envoyons une requête
Liste resultXML = s.createSQLQuery ( "SQL XML pour obtenir des données spécifiques") .setResultTransformer (Transformers.aliasToBean (User.class)) de .list();

Utilisateur dto = (Utilisateur) resultWithAliasedBean.get (0); // aura besoin de code pour combiner l'utilisateur dto du SQL à l'original

Répondre

0

ResultTransformer regroupe un ou plusieurs objets relationnels en un seul objet. Par exemple,

classe A {

Set b = new HashSet();

}

Donc, si vous commencez requête de la classe A et d'ajouter rejoindre sur B, il finira dans la création d'objets multipe de A.

ResultTransformer de données de faisceaux en simple Un objet.

Pouvez-vous s'il vous plaît code postal afin que nous puissions comprendre ce que vous tentez d'atteindre !!!

+0

Voici un exemple: – shaselai

+0

Voici un exemple: 1. HQL - From User. Nous utilisons le fichier de mapping Hibernate pour User et en utilisant Bytecode Enhancement, nous mettons "xmlStringColumn paresseux = true". String hql = "Utilisateur FROM"; Liste users = session.createQuery (hql) .list(); 2. nous envoyons une requête Liste resultXML = s.createSQLQuery ( "XML SQL pour obtenir des données spécifiques") .setResultTransformer (Transformers.aliasToBean (User.class)) .list(); Utilisateur dto = (Utilisateur) resultWithAliasedBean.get (0); // Besoin de code pour combiner l'utilisateur dto du SQL à l'original – shaselai

+0

Vérifiez les noms de liste de sélection et les noms de propriété de l'utilisateur sont les mêmes –