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

时间:2017-09-17 15:43:39

标签: java model-view-controller spring-data-jpa crud

我的Service班级

中有一个方法
@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不适用于参数(FilterDetails)

1 个答案:

答案 0 :(得分:0)

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

public interface FilterDetailsRepository extends CrudRepository<Customer, Long>

在上述情况下,除save外,它不允许Customer任何类型的实体。

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

public interface FilterDetailsRepository extends CrudRepository<FilterDetails, Long>

然后,通过引用FilterDetailsRepository,您可以保存FilterDetails