Падает : "Consider defining a bean named 'entityManagerFactory' in your configuration." Я хочу использовать свой метод из репозитория, не выходит
SpringBootApplication:
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
@SpringBootApplication
@EntityScan("com.example.demo.model")
@EnableJpaRepositories(basePackages = "com.example.demo.repository")
public class WeatherAppApplication {
public static void main(String[] args) {
SpringApplication.run(WeatherAppApplication.class, args);
}
}
Service Implementation:
package com.example.demo.service;
import com.example.demo.model.Weather;
import com.example.demo.repository.WeatherRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Service
public class WeatherServiceImplementation implements WeatherService {
@Autowired
private WeatherRepository weatherRepository;
@Override
public List<Weather> findAllWeather() {
return weatherRepository.findAll();
}
@Override
@Transactional
public Weather getWeatherByLast_updated(String last_updated) {
return weatherRepository.getWeatherByLast_updated(last_updated);
}
@Override
public Weather addWeatherOnCurrentDate(Weather weather) {
return weatherRepository.save(weather);
}
}
Entity:
package com.example.demo.model;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.*;
@Getter
@Setter
@Entity
@Table(name = "weather")
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
public class Weather {
@Id
@GeneratedValue(generator = "increment")
@Column(name = "id", length = 6, nullable = false)
private int id;
@Column(name = "pressure_mb")
private float pressure_mb;
@Column(name = "wind_mph")
private float wind_mph;
@Column(name = "temperature_celsius")
private float temp_c;
@Column(name = "humidity")
private int humidity;
@Column(name = "condition")
private String condition;
@Column(name = "location")
private String location;
@Column(name = "last_updated")
private String last_updated;
public Weather() {
}
}
Repository
package com.example.demo.repository;
import com.example.demo.model.Weather;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface WeatherRepository extends JpaRepository<Weather, Integer> {
Weather getWeatherByLast_updated(String last_updated);
//Weather getWeatherById(int id);
}
Controller:
package com.example.demo.controller;
import com.example.demo.model.Weather;
import com.example.demo.repository.WeatherRepository;
import com.example.demo.service.WeatherService;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate;
import java.util.List;
@RestController
public class WeatherController {
@Autowired
private WeatherService weatherService;
@Autowired
private WeatherRepository weatherRepository;
private static final ObjectMapper mapper = new ObjectMapper();
private String url = "http://api.weatherapi.com/v1/current.json?key=267da6ee01ec4e0a95a162121232003&q=Minsk&aqi=no";
private double temp_c;
private String location;
private double wind_mph;
private double pressure_mb;
private int humidity;
private String last_updated;
private String condition;
@GetMapping("/hello")
public String hello() {
return "hello from controller";
}
@GetMapping("/allWeathers")
public List<Weather> getAllWeathers() {
return weatherService.findAllWeather();
}
/*@GetMapping("/{id}")
public Weather getWeatherById(@PathVariable int id) {
return weatherRepository.getWeatherById(id);
}*/
@GetMapping("/{last_updated}")
public Weather getWeatherOnCurrentDateByLast_Updated(@PathVariable("last_updated") String last_updated) {
return weatherService.getWeatherByLast_updated(last_updated);
}
@PostMapping(consumes = "application/json", value = "/addWeather")
@ResponseStatus(HttpStatus.CREATED)
public Weather addNewWeather(@RequestBody Weather weather) {
Weather weather1 = new Weather();
weather1.setLocation(location);
weather1.setHumidity(humidity);
weather1.setPressure_mb((float) Math.ceil(pressure_mb));
weather1.setWind_mph((float) Math.ceil(wind_mph));
weather1.setTemp_c((float) Math.ceil(temp_c));
weather1.setCondition(condition);
weather1.setLast_updated(last_updated);
weatherRepository.save(weather1);
return weatherService.addWeatherOnCurrentDate(weather1);
}
@Bean
public CommandLineRunner commandLineRunner(ApplicationContext ctx) {
return args -> {
RestTemplate restTemplate = new RestTemplate();
String resp = restTemplate.getForObject(url, String.class);
JsonNode root = mapper.readTree(resp);
JsonNode locationNode = root.path("location");
if (!locationNode.isMissingNode()) {
location = locationNode.path("region").asText();
System.out.println("name : " + locationNode.path("name").asText());
System.out.println("region : " + locationNode.path("region").asText());
}
JsonNode currentNode = root.path("current");
if (!currentNode.isMissingNode()) {
temp_c = currentNode.path("temp_c").asDouble();
wind_mph = currentNode.path("wind_mph").asDouble();
pressure_mb = currentNode.path("pressure_mb").asDouble();
humidity = currentNode.path("humidity").asInt();
last_updated = currentNode.path("last_updated").asText();
condition = currentNode.path("condition").path("text").asText();
System.out.println("temperature in celsius: " + currentNode.path("temp_c").asText());
System.out.println("wind mph: " + currentNode.path("wind_mph").asText());
System.out.println("pressure_mb: " + currentNode.path("pressure_mb").asText());
System.out.println("humidity: " + currentNode.path("humidity").asText());
System.out.println("current date: " + currentNode.path("last_updated").asText());
System.out.println("condition: " + currentNode.path("condition").path("text").asText());
}
};
}
}
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.10</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>WeatherApp</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.26</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.jsoup/jsoup -->
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.15.4</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Application:
spring.datasource.url=jdbc:postgresql://localhost:5432/weather
spring.datasource.username=postgres
spring.datasource.password=root
spring.jpa.show-sql=true
spring.jpa.generate-ddl=true
spring.datasource.driver-class-name=org.postgresql.Driver
spring.jpa.database=postgresql
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQL10Dialect
LOG:
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'weatherController': Unsatisfied dependency expressed through field 'weatherService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'weatherServiceImplementation': Unsatisfied dependency expressed through field 'weatherRepository'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'weatherRepository' defined in com.example.demo.repository.WeatherRepository defined in @EnableJpaRepositories declared on WeatherAppApplication: Invocation of init method failed; nested exception is org.springframework.data.repository.query.QueryCreationException: Could not create query for public abstract com.example.demo.model.Weather com.example.demo.repository.WeatherRepository.getWeatherByLast_updated(java.lang.String); Reason: Failed to create query for method public abstract com.example.demo.model.Weather com.example.demo.repository.WeatherRepository.getWeatherByLast_updated(java.lang.String)! No property 'last' found for type 'Weather'; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract com.example.demo.model.Weather com.example.demo.repository.WeatherRepository.getWeatherByLast_updated(java.lang.String)! No property 'last' found for type 'Weather'
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:660) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1431) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:619) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:955) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:920) ~[spring-context-5.3.26.jar:5.3.26]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) ~[spring-context-5.3.26.jar:5.3.26]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147) ~[spring-boot-2.7.10.jar:2.7.10]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:731) ~[spring-boot-2.7.10.jar:2.7.10]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408) ~[spring-boot-2.7.10.jar:2.7.10]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) ~[spring-boot-2.7.10.jar:2.7.10]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1303) ~[spring-boot-2.7.10.jar:2.7.10]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1292) ~[spring-boot-2.7.10.jar:2.7.10]
at com.example.demo.WeatherAppApplication.main(WeatherAppApplication.java:13) ~[classes/:na]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[na:na]
at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) ~[spring-boot-devtools-2.7.10.jar:2.7.10]
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'weatherServiceImplementation': Unsatisfied dependency expressed through field 'weatherRepository'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'weatherRepository' defined in com.example.demo.repository.WeatherRepository defined in @EnableJpaRepositories declared on WeatherAppApplication: Invocation of init method failed; nested exception is org.springframework.data.repository.query.QueryCreationException: Could not create query for public abstract com.example.demo.model.Weather com.example.demo.repository.WeatherRepository.getWeatherByLast_updated(java.lang.String); Reason: Failed to create query for method public abstract com.example.demo.model.Weather com.example.demo.repository.WeatherRepository.getWeatherByLast_updated(java.lang.String)! No property 'last' found for type 'Weather'; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract com.example.demo.model.Weather com.example.demo.repository.WeatherRepository.getWeatherByLast_updated(java.lang.String)! No property 'last' found for type 'Weather'
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:660) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1431) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:619) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657) ~[spring-beans-5.3.26.jar:5.3.26]
... 23 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'weatherRepository' defined in com.example.demo.repository.WeatherRepository defined in @EnableJpaRepositories declared on WeatherAppApplication: Invocation of init method failed; nested exception is org.springframework.data.repository.query.QueryCreationException: Could not create query for public abstract com.example.demo.model.Weather com.example.demo.repository.WeatherRepository.getWeatherByLast_updated(java.lang.String); Reason: Failed to create query for method public abstract com.example.demo.model.Weather com.example.demo.repository.WeatherRepository.getWeatherByLast_updated(java.lang.String)! No property 'last' found for type 'Weather'; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract com.example.demo.model.Weather com.example.demo.repository.WeatherRepository.getWeatherByLast_updated(java.lang.String)! No property 'last' found for type 'Weather'
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1804) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657) ~[spring-beans-5.3.26.jar:5.3.26]
... 37 common frames omitted
Caused by: org.springframework.data.repository.query.QueryCreationException: Could not create query for public abstract com.example.demo.model.Weather com.example.demo.repository.WeatherRepository.getWeatherByLast_updated(java.lang.String); Reason: Failed to create query for method public abstract com.example.demo.model.Weather com.example.demo.repository.WeatherRepository.getWeatherByLast_updated(java.lang.String)! No property 'last' found for type 'Weather'; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract com.example.demo.model.Weather com.example.demo.repository.WeatherRepository.getWeatherByLast_updated(java.lang.String)! No property 'last' found for type 'Weather'
at org.springframework.data.repository.query.QueryCreationException.create(QueryCreationException.java:101) ~[spring-data-commons-2.7.10.jar:2.7.10]
at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.lookupQuery(QueryExecutorMethodInterceptor.java:107) ~[spring-data-commons-2.7.10.jar:2.7.10]
at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.lambda$mapMethodsToQuery$1(QueryExecutorMethodInterceptor.java:95) ~[spring-data-commons-2.7.10.jar:2.7.10]
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[na:na]
at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133) ~[na:na]
at java.base/java.util.Collections$UnmodifiableCollection$1.forEachRemaining(Collections.java:1061) ~[na:na]
at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1845) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[na:na]
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:na]
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) ~[na:na]
at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.mapMethodsToQuery(QueryExecutorMethodInterceptor.java:97) ~[spring-data-commons-2.7.10.jar:2.7.10]
at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.lambda$new$0(QueryExecutorMethodInterceptor.java:87) ~[spring-data-commons-2.7.10.jar:2.7.10]
at java.base/java.util.Optional.map(Optional.java:260) ~[na:na]
at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.<init>(QueryExecutorMethodInterceptor.java:87) ~[spring-data-commons-2.7.10.jar:2.7.10]
at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:365) ~[spring-data-commons-2.7.10.jar:2.7.10]
at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.lambda$afterPropertiesSet$5(RepositoryFactoryBeanSupport.java:323) ~[spring-data-commons-2.7.10.jar:2.7.10]
at org.springframework.data.util.Lazy.getNullable(Lazy.java:231) ~[spring-data-commons-2.7.10.jar:2.7.10]
at org.springframework.data.util.Lazy.get(Lazy.java:115) ~[spring-data-commons-2.7.10.jar:2.7.10]
at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.afterPropertiesSet(RepositoryFactoryBeanSupport.java:329) ~[spring-data-commons-2.7.10.jar:2.7.10]
at org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean.afterPropertiesSet(JpaRepositoryFactoryBean.java:144) ~[spring-data-jpa-2.7.10.jar:2.7.10]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863) ~[spring-beans-5.3.26.jar:5.3.26]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800) ~[spring-beans-5.3.26.jar:5.3.26]
... 47 common frames omitted
Caused by: java.lang.IllegalArgumentException: Failed to create query for method public abstract com.example.demo.model.Weather com.example.demo.repository.WeatherRepository.getWeatherByLast_updated(java.lang.String)! No property 'last' found for type 'Weather'
at org.springframework.data.jpa.repository.query.PartTreeJpaQuery.<init>(PartTreeJpaQuery.java:96) ~[spring-data-jpa-2.7.10.jar:2.7.10]
at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$CreateQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:119) ~[spring-data-jpa-2.7.10.jar:2.7.10]
at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$CreateIfNotFoundQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:259) ~[spring-data-jpa-2.7.10.jar:2.7.10]
at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$AbstractQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:93) ~[spring-data-jpa-2.7.10.jar:2.7.10]
at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.lookupQuery(QueryExecutorMethodInterceptor.java:103) ~[spring-data-commons-2.7.10.jar:2.7.10]
... 69 common frames omitted
Caused by: org.springframework.data.mapping.PropertyReferenceException: No property 'last' found for type 'Weather'
at org.springframework.data.mapping.PropertyPath.<init>(PropertyPath.java:91) ~[spring-data-commons-2.7.10.jar:2.7.10]
at org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:438) ~[spring-data-commons-2.7.10.jar:2.7.10]
at org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:414) ~[spring-data-commons-2.7.10.jar:2.7.10]
at org.springframework.data.mapping.PropertyPath.lambda$from$0(PropertyPath.java:367) ~[spring-data-commons-2.7.10.jar:2.7.10]
Источник: Stack Overflow на русском