我得到了以下stacktrace:
org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [org.springframework.data.jpa.repository.query.AbstractJpaQuery$TupleConverter$TupleBackedMap] to type [com.test.repository.models.customs.LightAssetWithQtyDto]
at org.springframework.core.convert.support.GenericConversionService.handleConverterNotFound(GenericConversionService.java:322) ~[spring-core-6.0.9.jar:6.0.9]
at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:195) ~[spring-core-6.0.9.jar:6.0.9]
at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:175) ~[spring-core-6.0.9.jar:6.0.9]
[...]
我的类如下:
AssetEntity
@SqlResultSetMapping(
name = "LightAssetWithQtyDtoMapping",
classes = {@ConstructorResult(
targetClass = LightAssetWithQtyDto.class,
columns = {
@ColumnResult(name = "id", type = Integer.class),
@ColumnResult(name = "stock_symbol", type = String.class),
@ColumnResult(name = "total", type = BigDecimal.class)
})}
)
@NamedNativeQueries(
@NamedNativeQuery(name = "AssetEntity.findAllAssetsWithQty",
resultSetMapping = "LightAssetWithQtyDtoMapping",
query = "SELECT a.id, a.stock_symbol, sum(t.quantity) AS total " +
"FROM asset a " +
"RIGHT JOIN \"transaction\" t ON a.id = t.asset_id " +
"GROUP BY a.stock_symbol, a.id HAVING sum(t.quantity) > 0"
)
)
@Getter
@Setter
@Entity
@Table(name = "asset")
public class AssetEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
[...]
LightAssetWithQtyDto
@Getter
@Setter
public class LightAssetWithQtyDto {
private Integer id;
private String stockSymbol;
private BigDecimal total;
public LightAssetWithQtyDto(Integer id, String stockSymbol, BigDecimal total) {
this.id = id;
this.stockSymbol = stockSymbol;
this.total = total;
}
}
AssetRepository
@Repository
public interface AssetRepository extends CrudRepository<AssetEntity, Integer> {
List<LightAssetWithQtyDto> findAllAssetsWithQty();
}
@ConstructorResult似乎与LightAssetWithQtyDto构造函数匹配。有谁知道这个错误可能是从哪里来的??
我希望findAllAssetsWithQty返回一个List。相反,我得到了一个例外。
1条答案
按热度按时间xvw2m8pv1#