Spring-data-jpa 投影生成查询不正确

Posted

技术标签:

【中文标题】Spring-data-jpa 投影生成查询不正确【英文标题】:Spring-data-jpa projection generating query incorrectly 【发布时间】:2016-08-07 21:09:26 【问题描述】:

我制作了一个使用 spring-data-jpa 投影功能的示例项目,但它生成的查询不正确。它不是仅获取声明的字段,而是获取整个实体。这是示例项目的链接:

https://github.com/ravshansbox/spring-data-jpa-projection-demo

谁能解释原因?

【问题讨论】:

您是否尝试过客户存储库@Query("your query", nativeQuery = true) 为什么要编写自定义查询?为什么是原生的? 它只是方法,不是答案,同样的例子看github.com/spring-projects/spring-data-examples/commit/… 【参考方案1】:

我发现了问题,是版本。将 spring-boot 升级到 1.4.0.RELEASE 解决了这个问题。

【讨论】:

【参考方案2】:

我有完全相同的问题,我已经在使用 spring-boot 1.5.1.RELEASE。 您确定将 spring-boot 更新到 1.4.0.RELEASE 解决了您的问题,而不是有所不同吗?

我的界面:

public interface CommentWithoutData 

public Long getId();

public String getUsername();

生成的(SQL)查询:从评论comment0_中选择comment0_.id 作为id1_0_,comment0_.created 作为created2_0_,comment0_.data 作为data3_0_,comment0_.username 作为username4_0_

问候

【讨论】:

是的,我敢肯定,使用 1.4.0.RELEASE 它可以按预期工作。 我也用 1.5.1.RELEASE 对其进行了测试,工作正常。 好的,谢谢。很奇怪。我不知道为什么它在我的情况下不起作用。我会试着弄清楚。你对我的代码有什么想法吗? 是的,请在某个地方发布,以便我可以访问。

以上是关于Spring-data-jpa 投影生成查询不正确的主要内容,如果未能解决你的问题,请参考以下文章

在 spring-data-jpa 中通过布尔属性查询而不使用方法参数

学习Spring-Data-Jpa---定义方法查询

没有 JPQL 查询的 Spring-data-jpa 中的 CURRENT_DATE

Spring-data-jpa:批量插入不起作用

使用 spring-data-jpa 获取这些数据如何更正确?

Spring-Data-JPA 中的查询如何动态组装条件?