带有字段集合

时间:2015-06-14 15:57:01

标签: java hibernate hql hibernate-criteria

我有下一个实体:

public class Photo {
   Long id;
   String url;
   @ManyToOne
   @JoinColumn(name ="user_id")
   User user;
   // other fields and getters/setters
}

第二名:

public class User {
   Long id;
   @OneToMany(mappedBy = "user")
   private Collection<Photo> photos;
   // other fields and getters/setters
}

DTO:

public class UserDTO {
    Long id;
    List<String> photosUrls;
}

和HQL查询:

 select u.id, p.url from User as u inner join u.photos as p
    where u.id = :id

结果我想要我的UserDTO对象,我将在休息时使用(json)。 但是像我这样的查询抛出异常,错误:

  

HibernateSystemException:发生IllegalArgumentException   调用属性的setter [com.dto.UserDTO.photosUrls(预期   type = java.util.List)]; target = [com.dto.UserDTO@7650a5f3],属性   value = [some url]

我无法找到正确的解决方案来获取结果对象列表,如:

List<UserDTO> result;

我看了another answer,但我的结果将包含用户ID和唯一照片网址的公告。

user_id     url
   1       http1
   1       http2
   3       http3
   3       http4

这个问题更多地解释了这个question。而且,也没有正确答案。

0 个答案:

没有答案