我正在嘗試運行 spring boot 應用程式,但出現以下錯誤:
應用程式運行失敗
org.springframework.beans.factory.UnsatisfiedDependencyException:在類路徑資源[muscat/configuration/RepositoryConfiguration.class]中定義的名稱為'returnReasonRepository'的bean創建錯誤:通過方法'returnReasonRepository'引數0表示的不滿足的依賴關系;嵌套例外是 org.springframework.beans.factory.BeanCreationException:在 ServiceApplication 上宣告的 @EnableJpaRepositories 中定義的 muscat.repository.SpringReturnReasonRepository 中創建名稱為“springReturnReasonRepository”的 bean 時出錯:呼叫 init 方法失敗;嵌套例外是 org.springframework.data.repository.query.QueryCreationException:無法為公共抽象 java.util.Optional .muscat.repository.SpringReturnReasonRepository.findByCode(java.lang.String) 創建查詢!原因:無法為方法 public abstract java.util.Optional .muscat.repository.SpringReturnReasonRepository.findByCode(java.lang.String) 創建查詢!沒有找到型別 ReturnReason! 的屬性代碼;嵌套例外是 java.lang.IllegalArgumentException: Failed to create query for method public abstract 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);
}
}
我的錯誤是什么,我該如何解決?
uj5u.com熱心網友回復:
muscat.repository.SpringReturnReasonRepository.findByCode(java.lang.String)!未找到 ReturnReason 型別的屬性代碼!
這是你的錯誤。在SpringReturnReasonRepository中,您有findByCode但沒有code在您的ReturnReason物體中命名的屬性。如果將此方法重命名為findByReasonCode,它將起作用。
如果您想了解更多關于 JPA 存盤庫方法命名約定的資訊,可以參考此鏈接。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/495517.html
