【问题标题】:No converter found capable of converting from type [java.lang.Integer] to type [@org.springframework.data.jpa.repository.Query没有找到能够从 [java.lang.Integer] 类型转换为 [@org.springframework.data.jpa.repository.Query] 类型的转换器
【发布时间】:2021-09-22 09:44:46
【问题描述】:

错误

org.springframework.core.convert.ConverterNotFoundException:找不到能够从类型 [java.lang.Integer] 转换为类型 [@org.springframework.data.jpa.repository.Query com.entity.CombHoldingRule] 的转换器/p>

实体类如下所示

    @Type(type = "int-array")
    @Column(
            name = "holdingrule_list",
            columnDefinition = "int[]"
    )
    private int[] holdingRuleList;//Checked

存储库:-

@Query(value="select combHoldingRuleId , " +
            "combHoldingRuleName, " +
            "jurisdictionId, " +
            "functionGroupId, " +
            "overallNettingType, " +
            "packageId ," +
            "holdingRuleList from CombHoldingRule where packageId=:packageId")
    //@Query(value=query,nativeQuery = true)
    List<CombHoldingRule> repoCHRFromPackageId(@Param("packageId") int packageId);

【问题讨论】:

  • 首先你有这个int-array类型自定义类型吗?你是否使用了任何库
  • 我没有使用任何自定义类型,在Entity类中,import com.vladmihalcea.hibernate.type.array.IntArrayType;正在进口
  • 你把这个类型注册到hibernate了吗?
  • 查看如何将类型注册到休眠中。 stackoverflow.com/questions/67768125/…
  • @org.springframework.data.jpa.repository.Query com.entity.CombHoldingRule 是一个非常奇怪的转化目标。请发布格式为代码的完整堆栈跟踪。

标签: spring-boot spring-data-jpa


【解决方案1】:

问题已解决

对我有用的解决方案如下。

在实体类中

    @Type(type = "int-array")
    @Column(
            name = "holdingrule_list",
            columnDefinition = "integer[]"
    )
    private int[] holdingRuleList;

在回购中

   @Query(value="from CombHoldingRule where packageId=:packageId")
    List<CombHoldingRule> repoCHRFromPackageId(@Param("packageId") int packageId);

感谢@Jens Schauder 的指导。

【讨论】:

    猜你喜欢
    • 2018-02-15
    • 2020-11-19
    • 1970-01-01
    • 2019-10-20
    • 2019-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-28
    相关资源
    最近更新 更多