我正在使用 JpaRepository 并在我的存盤庫中創建一個 @Query :
這是我的查詢:
@Query( "SELECT SUM(p.prima) as prima, p.producto as producto, p.tipoProducto as tipoProducto, p.compania as compania, p.cliente as cliente, p.vendedor as vendedor "
"FROM Poliza p "
"JOIN Producto pr ON p.producto=pr "
"JOIN TipoProducto tp ON p.tipoProducto=tp "
"JOIN Compania c ON p.compania=c "
"JOIN Cliente cl ON p.cliente=cl "
"LEFT JOIN Vendedor v ON p.vendedor=v "
"WHERE p.comienzo >=?1 "
"AND p.comienzo <= ?2 "
"GROUP BY p.producto")
我意識到我只得到“供應商”所在的行。我使用spring.jpa.show-sql=true屬性來檢查發生了什么,我意識到查詢正在為SELECT STATEMENT中的每個屬性創建一個內部連接
inner join producto producto1_ on (poliza0_.producto=producto1_.id)
inner join tipo_producto tipoproduc2_ on (poliza0_.tipo_producto=tipoproduc2_.id)
inner join compania compania3_ on (poliza0_.compania=compania3_.id)
inner join cliente cliente4_ on (poliza0_.cliente=cliente4_.id)
inner join vendedor vendedor5_ on (poliza0_.vendedor=vendedor5_.id)
join producto producto6_ on poliza0_.producto=producto6_.id
join tipo_producto tipoproduc7_ on poliza0_.tipo_producto=tipoproduc7_.id
join compania compania8_ on poliza0_.compania=compania8_.id
join cliente cliente9_ on poliza0_.cliente=cliente9_.id
left join vendedor vendedor10_ on poliza0_.vendedor=vendedor10_.id
正如您在第一部分中看到的,我有一個來自Vendor的內部聯接,這使得查詢錯誤。
我應該如何創建查詢以獲得預期結果?
uj5u.com熱心網友回復:
如果理解清楚
@Query( "SELECT SUM(p.prima) as prima, p.producto as producto, p.tipoProducto as tipoProducto, p.compania as compania, p.cliente as cliente, p.vendedor as vendedor "
"FROM Poliza p "
"JOIN Producto pr ON p.producto=pr "
"JOIN TipoProducto tp ON p.tipoProducto=tp "
"JOIN Compania c ON p.compania=c "
"JOIN Cliente cl ON p.cliente=cl "
"LEFT JOIN Vendedor v ON p.vendedor=v "
"WHERE p.comienzo >=?1 "
"AND p.comienzo <= ?2 "
"GROUP BY p.producto")
我認為您可以在選擇欄位中v使用。p.vendedor as vendedor
uj5u.com熱心網友回復:
如果我沒看錯,您正在定義自己的查詢。因此,您可以在查詢中編輯 JOIN 并改為撰寫 LEFT JOIN。我對你的意圖正確嗎?
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/432638.html
上一篇:TomEE找不到我配置的資料源
