这是一个类似的问题:this issue
我尝试使用相同的解决方案,但是我有这个错误:
select
查看<T extends JPAProjection > List<T> findAllByDeletedAtIsNull(Class<? extends JPAProjection> projection);
语句:没有请求任何字段!
有什么想法吗?
在存储库中查询:
JPAProjection
接下来,空白界面OrgId
和id
投影界面仅用于检索name
和public interface JPAProjection {}
public interface OrgId extends JPAProjection {
@Value("#{target.id}")
Long getId();
@Value("#{target.name}")
String getName();
}
:
return organizationRepository.findAllByDeletedAtIsNull(OrgId.class);
然后,调用查询:
readme :: Html
非常感谢, 安德烈
答案 0 :(得分:2)
如果您想对多个投影使用单一查询方法 - 您只需要Dynamic projections:
interface MyEntityRepo extends Repository<MyEntity, Long> {
<T> T findById(Long id, Class<T> type);
}
然后你可以将这个方法用于投影和主要实体:
MyEntity entity = findById(1L, MyEntity.class);
MyProjection entityProjection = findById(1L, MyProjection.class);