我有下一个实体:
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。而且,也没有正确答案。