2010-11-15 20 views
0

Je suis en train d'exécuter un namedquerydoute sur JPA namedquery

@NamedQuery(name="getEmployeeDetails",query="select e.username,e.email,e.image,e.firstname,e.lastname from Employee e where e.empid=?1") 

Maintenant, quand j'exécute cette requête dans une session EJB 3.0 Bean quel est l'objet je return.I essayé de retourner Listits retourner un vecteur qui crée une exception classcast. La table des employés contient des champs comme mot de passe et autres informations confidentielles que je ne veux pas aller chercher. Donc je n'utilise pas select e from Employee e. Je suis en train d'apprendre JPA peut-on aider quelqu'un.

Répondre

6

Voici l'exemple de requête qui extrait uniquement les champs obligatoires, mais qui doit en faire un constructeur.

Requête: SELECT NEW package_name.Employee(e.username,e.email,e.image,e.firstname,e.lastname) FROM Employee e where e.empid=?1;

Il retournera entité employé avec les champs sélectionnés & restants auront des valeurs par défaut.

5

Inspectez le type renvoyé en appelant .getClass() sur un objet retourné. Je suppose que c'est un tableau.

Mais ce n'est pas vraiment un bon moyen d'utiliser JPA. Sélectionnez l'entité entière, puis n'utilisez pas ce dont vous n'avez pas besoin. Ce n'est pas un tel coup de performance.

+0

merci a voté vers le haut.Mais la réponse par Nayan était ce dont j'avais besoin.Merci pour votre temps de toute façon. – Harish