我有两张一对一关系的桌子 - 人和房子 我尝试使用HQL投影,例如来自Person的Select p.name,p.dob,它返回我的名字和dob罚款。 但是,我不知道如何在HQL中使用投影: 我想把房子包括在内 我想只包括众议院的颜色和年份。
我尝试了SELECT p.firstName, p.lastName p.house FROM Person p"
但是错误了"无法解析属性"。为了做到这一点,我需要做些什么?感谢
答案 0 :(得分:0)
使用HQL实际上非常简单:
SELECT p.firstName, p.lastName, h.color, h.year FROM Person p join p.house h
这将返回一个数组来保存这些值。
对于你的第二条评论,是的,你可以有一个DTO来做到这一点,例如
class PersonDTO {
String firstName;
String lastName;
Hourse hourse;
public PersonDTO(){}
public PersonDTO(String firstName, String lastName, Hourse hourse) {
this.firstName = firstName;
this.lastName = lastName;
this.hourse = hourse;
}
// getter & setter
}
然后在你的HQL中,你可以像它一样返回它
SELECT new PersonDTO(p.firstName, p.lastName, h) FROM Person p join p.house h