为什么 save 方法适用于一个存储库而不适用于另一个存储库?

Why save method is working for one repository and not for the other?

我的 Service class

中有一个方法
@Override
    public void addFilterDetails(FilterDetails filterDetails) {
        // TODO Auto-generated method stub
        FilterDetails fd = new FilterDetails(filterDetails.getGender(),filterDetails.getAge(),filterDetails.getCity(),filterDetails.getState());
        filterDetailsRepository.save(fd);
    }

这是我的存储库

 package com.thoughtclan.segmentation_of_customers.repository;

    import org.springframework.data.repository.CrudRepository;
    import org.springframework.stereotype.Repository;

    import com.thoughtclan.segmentation_of_customers.model.Customer;
    import com.thoughtclan.segmentation_of_customers.model.FilterDetails;
    @Repository

    public interface FilterDetailsRepository extends CrudRepository<Customer, Long>{

    }

    @Override
        public void addCustomer(Customer custObj) {
            // TODO Auto-generated method stub
            Customer customer = new Customer( custObj.getFirstName(), custObj.getLastName(),custObj.getEmail(),custObj.getGender(),custObj.getPhoneno(),custObj.getCity(),custObj.getState(),custObj.getAge());
            customerRepository.save(customer);
        }

addCustomer() 使用完全相同的语法,为什么 filterdetails.save 给出以下错误?

CrudRepository is not applicable for the arguments (FilterDetails)

这是因为您已经为 Customer class 创建了一个存储库。

public interface FilterDetailsRepository extends CrudRepository<Customer, Long>

在上述情况下,它不能让你 save 除了 Customer 之外的任何类型的实体。

如果您想保存 FilterDetails,您必须为 FilterDetails 创建另一个存储库,如下所示:

public interface FilterDetailsRepository extends CrudRepository<FilterDetails, Long>

然后参考FilterDetailsRepository就可以保存FilterDetails