有如下段代码 其中person是jpa的entity对象,personResult是自定义对象
@Query(select new com.xx.yy.PersonResult(p.id,p.name,p.age) from Person p)
List<PersonResult> findPersonResult();
这样执行是可以的,但是如果我其中的personResult对象中的id是叫personId,上面的代码该如何改?
我用过
@Query(select new com.xx.yy.PersonResult(p.id as personId,p.name,p.age) from Person p)
List<PersonResult> findPersonResult();
会报错,是不是jpql new对象的时候不支持别名吗?
Votre code
Il vous suffit de supprimer
as
jpa
ne prend pas en charge cette syntaxe.Concernant votre question : vous n'avez pas à vous soucier des différents noms d'entité et de vos attributs de classe personnalisés. Utilisez
.select new xx.xx.PersonResult(p.id,p.name.p.age) 语法时,jpa不会关心真实的字段叫什么名字,只要字段类型一致就可以了,因为这里采用是Java的构造函数。调用构造函数时只需要关心需要传入几个参数以及参数的类型
Regardez mon code, ce sera plus intuitif
Constructeur d'AnotherPerson