SpringJPA本机查询的异常

时间:2018-01-05 23:25:02

标签: java mysql sql spring spring-data-jpa

当我尝试执行List<AddressType> addressesList = ......;//Read from xml and load Connection connection = factory.newConnection(addressesList); 时,我面临以下异常:

  

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:你有一个   SQL语法错误;查看与您的手册相对应的手册   MySQL服务器版本,用于在&f; f附近使用正确的语法,   codigoleyenda cl,tipocomprobante tc,moneda m,cliente c,tipotaxigv   ttig,t&#39;在第1行

我的存储库如下 -

native query

这个查询在mysql上工作得很好,但是面对@Repository public interface FacturaRepository extends JpaRepository<Factura, Integer>, CrudRepository<Factura, Integer>{ @Query(value="select " + "f.facId," + "facBaja," + "f.facEnvioSunat," + "f.facEnvioServidor," + "f.facEstadoEnvioCorreo," + "f.facFechaRespuesta," + "f.facRuta," + "f.facSubTotal," + "f.facInafecta," + "f.facExonerada," + "f.facGratuita," + "f.facGravada," + "f.facPercepcion," + "f.facOtrosTributos," + "f.facDescuento," + "cl.codLeyCodigo," + "f.facLeyenda," + "f.facDetraccion," + "f.facNroSerie," + "f.facNroCorrelativo," + "f.facFechaEmision," + "tc.tipComCodigo,"+ "m.monCodigo,"+ "ub.ubiDepartamento," + "ub.ubiProvincia," + "ub.ubiDistrito," + "ub.ubiCodigo," + "p.parRuta," + "s.sucDireccionFiscal," + "s.sucRuc," + "s.sucTipoDocumento," + "s.sucPais," + "s.sucRazonSocial," + "c.cliCondicionDomicilio," + "c.cliDireccionFiscal," + "c.cliEstado," + "c.cliNumeroDocumento," + "c.cliRazonSocial," + "td.tipDocCodigo," + "f.facIgv," + "f.facIsc," + "ttig.tipTaxIgvCodigo," + "ttis.tipTaxIscCodigo," + "f.facOtrosConceptos," + "oc.otrConCodigo," + "f.facTaxIgvPorcentaje," + "f.facTaxIscPorcentaje," + "f.facHashcode," + "f.facNombreZip," + "f.facTotal," + "f.facRetencion," + "f.facPlaca" + "from factura f, codigoleyenda cl, tipocomprobante tc, moneda m, cliente c, tipotaxigv ttig, tipotaxisc ttis, otrosconceptos oc," + "tipodocumento td, sucursal s, ubigeo ub, parametros p" + "where c.tipDocId = td.tipDocId and f.sucId=s.sucId and s.ubiId=ub.ubiId and s.parId=p.parId" + "and f.codLeyId=cl.codLeyId and f.tipComId=tc.tipComId and f.monId=m.monId and f.cliId=c.cliId and " + "f.tipTaxIgvId=ttig.tipTaxIgvId and f.tipTaxIscId=ttis.tipTaxIscId and f.OtrConId=oc.otrConId and f.facId=?1", nativeQuery=true) FacturaXmlDto getFacturaXml(int facId); 的异常,我在这个问题上需要帮助。

1 个答案:

答案 0 :(得分:0)

对于此类问题,您需要发出异常。但只要看一下,检查你的空间。您肯定需要在以下行的结束引号之前添加一个空格:

"f.facPlaca" +
"tipodocumento td, sucursal s, ubigeo ub, parametros p" + 
"where c.tipDocId = td.tipDocId and  f.sucId=s.sucId and s.ubiId=ub.ubiId and s.parId=p.parId" +

没有空格,该行的最后一个单词将进入下一行的第一个单词。此外,在您的代码中,您可能希望打印生成的查询,并将该查询复制并粘贴到您的数据库浏览器中,看看会发生什么。