Java @公式-Hibernate中的本机查询语法错误

Java @公式-Hibernate中的本机查询语法错误,java,mysql,spring,hibernate,jpa,Java,Mysql,Spring,Hibernate,Jpa,我在FullProduct和PartValue之间有一个一对多的关系(一个完整的产品有多个PartValue) 我试图使用下面的@Formula注释-语法似乎是正确的,因为我在命令行中运行了它,并给出了正确的结果 @Formula("select sum(pv.total_value) from part_value pv inner join full_product fp on fp.full_product_id=pv.full_product_id") private Float tot

我在FullProduct和PartValue之间有一个一对多的关系(一个完整的产品有多个PartValue)

我试图使用下面的@Formula注释-语法似乎是正确的,因为我在命令行中运行了它,并给出了正确的结果

@Formula("select sum(pv.total_value) from part_value pv inner join full_product fp on fp.full_product_id=pv.full_product_id")
private Float totalAmount;
然而,当我在SpringJPA/Hibernate中运行它时,我得到以下错误

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以获得正确的语法,以便在第1行使用“从部分值pv内部连接完整产品fp上选择总和(pv.total值)”。完整产品id=pv.full产品id

错误日志中没有任何其他内容指向正确的方向

我很困惑——如果命令行中的SQL语法运行良好,为什么Spring/Hibernate会抛出这个错误。有人能帮忙吗

谢谢您的指点。

尝试为子查询添加

@Formula("(select sum(pv.total_value) from part_value pv inner join full_product fp on fp.full_product_id=pv.full_product_id)")
private Float totalAmount;
因为它被翻译成

select
  entityAlias1.field1,
  entityAlias1.field2,
  ...
  (select sum(pv.total_value) from part_value pv inner join full_product fp on fp.full_product_id=pv.full_product_id),
  ...
from the_entity_table entityAlias1
...

没有()的语法是错误的。

这是完美和快速的!就我的理解而言,你是手动输入译文还是使用某种工具生成的?它是手动输入的。但是您可以将
show_sql
切换为true,并看到启动了真正的sql查询。是的,我知道这一点。很奇怪,因为你的翻译是完美的:)。再次感谢。