为什么 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
我的 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