Spring boot:1.5.10 spring Data JPA:1.11.10
IE MyEntity
class MyEntity{
private Long id;
private String name;
private Integer age;
// getter setter
}
我的我的投影
interface MyProjection{ String getName() }
MyEntityRepository
...
MyProjection findById(Long Id)
...
当我调用findById函数时,生成sql是:
select myentity0_.id, myentity0_.name,myentity0_.age from MyEntity myentity0_ where ...
为什么还要选择年龄栏?
答案 0 :(得分:1)
是的,Spring Data JPA应该只选择处理界面投影时所需的特定列。
我刚刚根据您的问题在一个简单的项目中对其进行了测试,并观察到正在执行以下查询:
select myentity0_.name as col_0_0_ from my_entity myentity0_ where myentity0_.id=?
这表明您的应用程序行为有所不同。看看示例项目并将其与您自己的项目进行比较,看看您是否能发现任何差异:https://github.com/roberthunt/spring-data-interface-projection