zhangzhenhuajack / spring-data-jpa-guide

spring-data-jpa-guide,Spring Data JPA实战,SpringDataJpa详解
http://www.jackzhang.cn/spring-data-jpa-guide/
365 stars 159 forks source link

经测试@Query等于nativeSql的时候projections是DTO的时候不能正确映射 #10

Open zhangzhenhuajack opened 4 years ago

zhangzhenhuajack commented 4 years ago

参考:
https://www.baeldung.com/jpa-queries-custom-result-with-aggregation-functions
确实没有提到DTO的nativeSql的用法;

但看Hibernate感觉应该是支持才对。
https://thoughts-on-java.org/dto-projections/
难道要配置@SqlResultSetMapping:
https://stackoverflow.com/questions/29082749/spring-data-jpa-map-the-native-query-result-to-non-entity-pojo 这是个什么原理和机制有待研究......

zhangzhenhuajack commented 3 years ago

image 经过测试是完全可以的,需要注意的是 @Query返回的可以直接用接口,如果用class **Dto的话需要配合 spel表达式,另外DTO有很多局限性,就是对DTO的构造方法有要求最好只有一个

zhangzhenhuajack commented 3 years ago

DTO的话需要注意构造方法: image

loli0con commented 2 years ago

请问这个映射还有更多配置项可选吗?

测试情况图

这个测试用例涉及到了:

  1. 下划线和小驼峰的映射问题
  2. 字段类型的转换问题

如图所示,使用这种“简单默认”的配置方式,无法很好地满足需求。

上面提到了用dto可以配合spel表,能否给一些例子来说明如何使用?

看您写的两本jpa的书籍,都是推荐接口方式的,那么接口方式又是否可以使用spel呢?