Java InvalidDataAccessApiUsageException:参数值元素与预期类型不匹配

Java InvalidDataAccessApiUsageException:参数值元素与预期类型不匹配,java,spring-boot,spring-data,spring-data-jpa,Java,Spring Boot,Spring Data,Spring Data Jpa,我正在尝试使用Spring数据执行一个IN查询。我的模型如下所示: @Entity @Table(name = "customer", schema = "public", catalog = "postgres") public class CustomerEntity { private int id; private String name; private int balance; private String bankId; @Id @

我正在尝试使用Spring数据执行一个IN查询。我的模型如下所示:

@Entity
@Table(name = "customer", schema = "public", catalog = "postgres")
public class CustomerEntity {
    private int id;
    private String name;
    private int balance;
    private String bankId;

    @Id
    @Column(name = "id")
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    @Basic
    @Column(name = "name")
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Basic
    @Column(name = "balance")
    public int getBalance() {
        return balance;
    }

    public void setBalance(int balance) {
        this.balance = balance;
    }

    @Basic
    @Column(name = "bank_id")
    public String getBankId() {
        return bankId;
    }

    public void setBankId(String bankId) {
        this.bankId = bankId;
    }
@Repository
public interface TransactionsRepository extends JpaRepository<TransactionsEntity, Long> {

    List<TransactionsEntity> findByCustomerIdIn(List<CustomerEntity> customerEntities);
我的存储库界面如下所示:

@Entity
@Table(name = "customer", schema = "public", catalog = "postgres")
public class CustomerEntity {
    private int id;
    private String name;
    private int balance;
    private String bankId;

    @Id
    @Column(name = "id")
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    @Basic
    @Column(name = "name")
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Basic
    @Column(name = "balance")
    public int getBalance() {
        return balance;
    }

    public void setBalance(int balance) {
        this.balance = balance;
    }

    @Basic
    @Column(name = "bank_id")
    public String getBankId() {
        return bankId;
    }

    public void setBankId(String bankId) {
        this.bankId = bankId;
    }
@Repository
public interface TransactionsRepository extends JpaRepository<TransactionsEntity, Long> {

    List<TransactionsEntity> findByCustomerIdIn(List<CustomerEntity> customerEntities);

正如在异常中所说的,Spring需要一个
字符串
,因为您的
事务实体
中的
客户id
是一个字符串,但您正在输入一个
客户属性
。相反,您应该输入带有客户ID列表的
列表

顺便说一句,假设您将
客户id设置为
客户属性的
id
,您的
客户id不应该是
int

然后你可以做类似的事情

List<Integer> customerIds = customerEntitiesList.stream().map(CustomerEntity::getId).collect(Collectors.toList());
List customerIds=customerentieslist.stream().map(CustomerEntity::getId).collect(Collectors.toList());

您也可以发布您的交易实体吗?我已经更新了原始帖子。同时我解决了这个问题,我向查询传递了一个对象,但它需要一个字符串。我想我对spring数据的评价太高了:)我对结果不满意,因为我首先得到一个客户列表,然后我必须创建一个单独的客户id(字符串)值列表,并使用该列表进行查询。也许还有别的办法?