我想通过使用3个表的自然联接调用查询(SearchOutput方法)来获取@Query数据对象。但是查询运行时显示错误。

我试图在我的spring boot controller类中获取数据。但是由于错误它不起作用

package com.example.mysqlproj.model;
import lombok.*;
public class SearchOutput {
    private String  hotel_name;
    private String room_type;
    private int price;

}




package com.example.mysqlproj.dao;
import com.example.mysqlproj.model.Room_Type;
import com.example.mysqlproj.model.SearchOutput;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
import java.util.Collection;
import java.util.Date;
import java.util.List;

public interface RoomTypeDao extends CrudRepository<Room_Type,Integer> {

    @Query(value="select new SearchOutput(hotel_name , room_type,(price*(?4)*(?3)*(1.15))) from Room_type natural join Hotel natural join True_contract where  (?1 >= start_date and ?2 <= end_date and ?3 <=available_rooms and ?4<= max_adults )", nativeQuery = true)
    List<SearchOutput[]> checkHotelList(Date from, Date to, int rooms, int adults, int total_nights);

}


错误:

No converter found capable of converting from type [org.springframework.data.jpa.repository.query.AbstractJpaQuery$TupleConverter$TupleBackedMap] to type [com.example.mysqlproj.model.SearchOutput]] with root cause


我的目标是在调用查询时获取一个searchOutput对象数组。
有什么解决方案吗?提前致谢

最佳答案

查询的响应类型为
List<Map<String, Object>>

请将方法返回类型更改为此。

09-30 20:13