解决方法:通过参数 0 'returnReasonRepository'方法表示的不满足依赖关系;



我正在尝试运行spring引导应用程序,但我得到了以下错误:

应用程序运行失败

org.springframework.beans.factory。UnsatisfiedDependencyException:在类路径资源[muscat/configuration/RepositoryConfiguration.class]中定义名称为'returnReasonRepository'的bean创建错误:通过方法'returnReasonRepository'参数0表示不满意的依赖;嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名称为'springReturnReasonRepository'的bean时出错,该bean定义在muscat.repository.SpringReturnReasonRepository中,定义在ServiceApplication上声明的@ enablejparepository中:调用init方法失败;org.springframework.data.repository.query.QueryCreationException:无法为公共抽象创建查询java.util.Optional .muscat.repository.SpringReturnReasonRepository.findByCode(java.lang.String)!java.util.Optional .muscat.repository.SpringReturnReasonRepository.findByCode(java.lang.String)!没有找到类型ReturnReason的属性代码!java.util.Optional .muscat.repository.SpringReturnReasonRepository.findByCode(java.lang.String)!没有找到类型ReturnReason的属性代码!

这是实体:

import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import static javax.persistence.GenerationType.IDENTITY;
@Entity
@Data
@EqualsAndHashCode(of = "id", callSuper = false)
public class ReturnReason {
@Id
@GeneratedValue(strategy = IDENTITY)
private Long id;

@Column
private String reasonCode;

@Column
private String reasonDescription;


@Column
private String reasonType;
}

and this is the 
public interface ReturnReasonRepository extends MessageRepository<ReturnReason> {
Optional<ReturnReason> findByCode(String reasonCode);
}


public class ReturnReasonRepositoryImpl implements ReturnReasonRepository {
private final SpringReturnReasonRepository springReturnReasonRepository;

public ReturnReasonRepositoryImpl(SpringReturnReasonRepository springReturnReasonRepository) {
this.springReturnReasonRepository = springReturnReasonRepository;
}


@Override
public Optional<ReturnReason> findByCode(String reasonCode) {
return springReturnReasonRepository.findByCode(reasonCode);
}

@Override
public ReturnReason save(ReturnReason returnReason) {
return springReturnReasonRepository.save(returnReason);
}


public interface SpringReturnReasonRepository extends CrudRepository<ReturnReason, Long>, JpaSpecificationExecutor<ReturnReason> {
Optional<ReturnReason> findByCode(String reasonCode);
}


@Configuration
public class RepositoryConfiguration {


@Bean
public BankInformationRepository bankInformationRepository(SpringBankInformationRepository springBankInformationRepository) {
return new BankInformationRepositoryImpl(springBankInformationRepository);
}

@Bean
public ReturnReasonRepository returnReasonRepository(SpringReturnReasonRepository springReturnReasonRepository) {
return new ReturnReasonRepositoryImpl(springReturnReasonRepository);
}
}

我的错误是什么,我如何解决它?

muscat.repository.SpringReturnReasonRepository.findByCode(java.lang.String)!没有找到类型ReturnReason的属性代码!

这是你的错误。在SpringReturnReasonRepository中,您有findByCode,但在ReturnReason实体中没有名为code的属性。如果您将此方法重命名为findByReasonCode,它将工作。

如果您想了解更多JPA存储库方法命名约定,您可以参考此链接。

相关内容

最新更新