如何使用JPA';s@EmbeddedId,带@Query,不带@Table?

如何使用JPA';s@EmbeddedId,带@Query,不带@Table?,jpa,spring-data-jpa,Jpa,Spring Data Jpa,我有一个下面的 @Query( value="SELECT MAX(LOG_DATE) AS LOG_DATE, REGION_NAME, HOST_NAME, MIN(REGION_MIN_TIME) AS REGION_MIN_TIME, MAX(REGION_MAX_TIME) AS REGION_MAX_TIME,SUM(TOTAL_TIME_TAKEN) AS TOTAL_TIME_TAKEN, SUM(REGION_API_COUNT) AS REGION_

我有一个下面的

@Query(
        value="SELECT MAX(LOG_DATE) AS LOG_DATE, REGION_NAME, HOST_NAME, MIN(REGION_MIN_TIME) AS REGION_MIN_TIME, MAX(REGION_MAX_TIME) AS REGION_MAX_TIME,SUM(TOTAL_TIME_TAKEN) AS TOTAL_TIME_TAKEN, SUM(REGION_API_COUNT) AS REGION_API_COUNT,AVG(TOTAL_TIME_TAKEN/REGION_API_COUNT) AS AVG_RES_TIME, MAX(LST_SRC_UPDT_DATE) AS LST_SRC_UPDT_DATE FROM MY_SCHEMA.GEMFIRE_REGION_USAGE GROUP BY REGION_NAME,HOST_NAME",
        nativeQuery = true
)
List<GemfireStatAggregate> findAggregates();

@Getter
@AllArgsConstructor
@NoArgsConstructor
@Entity
public class GemfireStatAggregate {
    @EmbeddedId
    private GemfireStatId id;
    @Column(name="REGION_MIN_TIME")
    private String regionMinTime;
}

@Embeddable
@Getter
@AllArgsConstructor
@NoArgsConstructor
public class GemfireStatId implements Serializable {
    @Column(name = "LOG_DATE")
    private Date loggedDate;
    @Column(name="REGION_NAME")
    private String regionName;
    @Column(name="HOST_NAME")
    private String hostName;
}
Failed to convert from type [java.lang.Object[]] to type [com.me.GemfireStatAggregate] for value '{...data redacted but looks good...}'; nested exception is org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [java.sql.Timestamp] to type [com.me.GemfireStatAggregate]
为什么会这样

更新

这确实管用,但很难看,我不喜欢它

public List<GemfireStatAggregate> getAggregateData() {
    List<GemfireStatAggregate> result = new ArrayList<>();
    for(Object[] arr : repo.findAggregates()){
        GemfireStatId id = new GemfireStatId(
                (Timestamp) Array.get(arr, 0),
                (String) Array.get(arr, 1),
                (String) Array.get(arr, 2)
        );
        result.add(new GemfireStatAggregate(
                id,
                (String) Array.get(arr, 3)
        ));
    }
    return result;
}
public List getAggregateData(){
列表结果=新建ArrayList();
对于(对象[]arr:repo.findAggregates()){
GemfireStatId=新的GemfireStatId(
(时间戳)Array.get(arr,0),
(字符串)Array.get(arr,1),
(字符串)Array.get(arr,2)
);
结果。添加(新的GemfireStatAggregate(
身份证件
(字符串)Array.get(arr,3)
));
}
返回结果;
}

在日志数据字段中添加@Temporal注释

@Temporal(TemporalType.DATE)
@Column(name = "LOG_DATE")
private Date loggedDate;
如果我将List改为List,我会得到一个字符串列表,其中的值用逗号分隔。那它为什么不映射呢?