我有一个查询,由于多个关系需要很长时间。所以,我想创建一个视图来只获取必要的数据,并使用JOIN Fetch优化此查询。但是,JPA返回错误No aliases found in result tuple!请确保您的查询定义了aliases!
下面是我创建的视图的定义:
public interface BoatContractView {
Integer getId();
String getName();
Boolean getMaintenance();
Set<ServiceBoatView> getBoatServices();
interface ServiceBoatView {
Integer getId();
List<ContractDocumentDto> getContracts();
interface ContractDocumentDto {
Integer getId();
ContractType getContractType();
}
}
}
字符串
以及提供程序中的方法:
@Query("FROM Boat b JOIN FETCH b.boatServices bs WHERE b.marina.id = ?1 AND b.active = true ")
List<BoatContractView> findBoatContractViewByMarinaIdAndActiveTrue(Integer marinaId);
型
1条答案
按热度按时间hujrc8aj1#
您看到的错误消息是因为您没有在查询中使用别名。您可以尝试以下查询:
字符串
此查询使用别名将查询结果Map到视图中的字段。然后可以使用这些别名填充视图。