Est-ce possible: JPA/Hibernate query avec la liste des biens dans le résultat?

En veille prolongée je veux exécuter ce JPQL /requête HQL:

select new org.test.userDTO( u.id, u.name, u.securityRoles)
FROM User u
WHERE u.name = :name

userDTO classe:

public class UserDTO {
   private Integer id;
   private String name;
   private List<SecurityRole> securityRoles;

   public UserDTO(Integer id, String name, List<SecurityRole> securityRoles) {
     this.id = id;
     this.name = name;
     this.securityRoles = securityRoles;
   }

   ...getters and setters...
}

Entité Utilisateur:

@Entity
public class User {

  @id
  private Integer id;

  private String name;

  @ManyToMany
  @JoinTable(name = "user_has_role",
      joinColumns = { @JoinColumn(name = "user_id") },
      inverseJoinColumns = {@JoinColumn(name = "security_role_id") }
  )
  private List<SecurityRole> securityRoles;

  ...getters and setters...
}

Mais quand Hibernate 3.5 (JPA 2) démarre, j'obtiens cette erreur:

org.hibernate.hql.ast.QuerySyntaxException: Unable to locate appropriate 
constructor on class [org.test.UserDTO] [SELECT NEW org.test.UserDTO (u.id,
u.name, u.securityRoles) FROM nl.test.User u WHERE u.name = :name ]

Est une sélection qui comprend une liste (u.securityRoles) en conséquence pas possible? Dois-je viens de créer 2 séparés des requêtes?

InformationsquelleAutor Kdeveloper | 2010-04-20