Spécification des colonnes dans les causes sélectionnez JPQL erreur de casting
Question
Quand je des colonnes sont indiquées dans mon JPQL / JPA 2.0 requête, à savoir select p.id, p.lastName, p.firstName from Profile p where p.group = :group
j'obtenir l'erreur suivante: [Ljava.lang.Object; cannot be cast to com.profs.ws.Profile...
Quelqu'un sait comment résoudre ce problème de casting
La classe entité Profile
lui-même a des propriétés des types suivants: String, int, and Collection
. Les propriétés je sélectionne dans la requête sont soit du type String
ou int
.
La solution
Lorsque vous spécifiez les propriétés d'un objet, JPA renvoie la liste des Object[]
. Vous pouvez lancer la valeur de retour à List<Object[]
au lieu de List<Profile>
pour éviter le ClassCastException
. Si vous utilisez Hibernate en tant que fournisseur JPA, vous pouvez mapper la clause select à un nouvel objet. Voir documentation clause select pour plus de détails.