当前位置: 首页 > 知识库问答 >
问题:

Jpa参数值元素[xxx]与预期的类型[xxx]不匹配

叶英哲
2023-03-14
Set<ApplicationMaterialFile> findAllByProcessInstanceIdAndApplicationMaterialIn(String processInstanceId, Collection<ApplicationMaterial> applicationMaterials);
@Override
    public Set<ApplicationMaterialFile> getAllByProcessInstanceIdApplicationMaterialIds(String processInstanceId, Set<Long> applicationMaterialId) {
        List<ApplicationMaterial> applicationMaterials = applicationMaterialService.getAllByIdIfNotExistsThenThrowException(applicationMaterialId);

        return applicationMaterialFileRepository.findAllByProcessInstanceIdAndApplicationMaterialIn(processInstanceId, applicationMaterials);
    }
/**
 * 
 * @see <a href="https://code.aliyun.com/butterfly-effect/backend/wikis/plans"
 * @author himly z1399956473@gamil.com
 */
@Table(name = "application_material_library")
@Entity
@EntityListeners(AuditingEntityListener.class)
@Data
@ToString(exclude = {"university"})
@EqualsAndHashCode(exclude = {"university"})
public class ApplicationMaterial {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(nullable = false)
    private String name;

    private String fileFormat;


    private String description;


    private String templateFileUrl;


    @JsonIgnore
    @ManyToOne
    private University university;


    @CreatedDate
    @Column(nullable = false)
    private Timestamp createdAt;


    @LastModifiedDate
    @Column(nullable = false)
    private Timestamp updatedAt;
}

何时调用Spring数据JPA方法FindAllByProcessInstanceIdandApplicationMaterialIn将引发如下所示的异常

原因:java.lang.IllegalArgumentException:参数值元素[ApplicationMaterial(ID=1,Name=SDFSF,FileFormat=Doc,Description=DFSDFDS,TemplateFileURL=FSDFSDF,CreateDat=2018-09-26 16:54:09.297,UpdateDat=2018-09-26 16:54:23.451)]与预期类型[com.hikedu.backend.model.ApplicationMaterial(N/A)]不匹配

有人能帮帮我吗?

更新:

表结构:

-- auto-generated definition
create table application_material_library
(
  id                bigint auto_increment
    primary key,
  created_at        datetime(6)  not null,
  description       varchar(255) null,
  file_format       varchar(255) null,
  name              varchar(255) not null,
  template_file_url varchar(255) null,
  updated_at        datetime(6)  not null,
  university_id     bigint       null,
  constraint FK9kuemh1kjhyt8u16sqw6i6t59
  foreign key (university_id) references universities (id)
);

共有1个答案

山高峰
2023-03-14

Spring数据似乎找不到您的自定义方法实现。

因此,它将该方法解释为派生查询方法,并抱怨参数的类型与它所期望的不匹配。这个错误很奇怪,因为它抱怨,尽管类型似乎是匹配的。但这不是你的问题。问题是找不到自定义方法。

这个答案描述了如何根据您使用的Spring数据的版本进行自定义实现。

 类似资料:
  • 我使用的是JPA2.0,在DAO层中有以下代码: 注意:这是从泛型例程中提取和简化的代码,我不能将“Object ValueArr”更改为String[],因为它被用于其他...

  • 我生活在一场噩梦中,这是一场依赖性的噩梦;) 我正在测试一个使用Hibernate3的EJB应用程序。 我可以部署它: > 作为部署到嵌入式JBOSS 7()的Arquillian测试(EJB作为封装在EAR中的JAR)。它在那里不起作用。我尝试过各种依赖项集,但这是我确定需要的最小依赖项集:

  • 我生活在一个噩梦中,而且是一个依赖的噩梦;) 我正在测试一个使用Hibernate3的EJB应用程序。 > 在WebSphere8上(EAR中内置的EJB JAR),这是我想要的目标环境。在那里很好用。按照我们组织的标准,(Hibernate)依赖关系是通过一个单独的过程来处理的。我似乎在那里获得了以下Hibernate依赖项: * * * * * * * * * 作为部署到嵌入式JBoss7()

  • 我正在尝试使用Spring数据执行一个IN查询。我的模型如下所示: 我的仓库界面是这样的: } 问题是当我尝试执行此代码

  • 我已经回答了这个问题,但没有得到任何反馈。因此,我将尝试提出不同的问题。我想对我的搜索请求使用规范。但似乎无法访问规范或其他内容,因为它告诉我: 这个:带有@...似乎不对。 我只是试着遵循这个Spring官方教程:https://spring.io/blog/2011/04/26/advanced-spring-data-jpa-specifications-and-querydsl/ 或者来自

  • 我在请求服务线路时收到此错误: 错误:组织。springframework。道。InvalidDataAccessApiUsageException:参数值[5]与预期类型[nz.webshop.models.Customer.Customers(不适用)]不匹配;嵌套的异常是java。lang.IllegalArgumentException:参数值[5]与预期类型[nz.webshop.mod