Я пытаюсь сохранить объект в Postgresql базе данных, но безуспешно. Приложение запускается нормально, исключение не выдается, и companiesRepository не имеет значение null. База данных была создана вручную.
Это мой Application.class :
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Это мой Service.class :
@org.springframework.stereotype.Service
public class Service {
@Autowired
CompaniesRepository companiesRepository;
public void start() {
Companies companies = new Companies();
companies.setSomeString("some");
companies.setId(1);
companiesRepository.save(companies);
log.info("Companies saved in DB");
}
}
Это мой Companies.class :
@Entity
@Data
public class Companies {
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Id
Integer id;
String someString;
}
Это мой CompaniesRepository интерфейс:
@Repository
public interface CompaniesRepository extends CrudRepository<Companies, Integer> {
}
Это мой Controller.class :
@RestController
public class Controller {
@Autowired
private Service service;
@RequestMapping("/")
public String start() throws Exception {
service.start();
return "App Started";
}
}
Конфигурация, которая у меня есть в bootstrap .yaml файле, работает правильно в другом проекте:
spring:
jpa:
database-platform: org.hibernate.dialect.PostgreSQLDialect
show-sql: false
generate-ddl: true
time_zone: UTC
hibernate:
ddl-auto: update
properties:
hibernate:
dialect: org.hibernate.dialect.PostgreSQLDialect
hbm2ddl:
auto: update
jdbc:
lob:
non_contextual_creation: true
enable_lazy_load_no_trans: true
datasource:
url: jdbc:postgresql://localhost:5432/dos?createDatabaseIfNotExist=true&serverTimezone=UTC
driver-class-name: org.postgresql.Driver
username: "postgres"
password: "123"
initialization-mode: always
hibernate:
dialect: org.hibernate.dialect.PostgreSQLDialect
jdbc:
time_zone: UTC
Я пытался:
- annottate String и id в Companies.class с
@Column(nullable = false)
, - изменил имя таблицы для Companies.class с
@Table(name = "some_table")
. - добавить
@Autowired CompaniesRepository repository;
в Controller.class
РЕДАКТИРОВАТЬ:
Это журналы консоли:
2020-03-07 15:35:11.620 INFO 2484 --- [ main] com.xtb.tradebot.Application : Starting Application on MWNB00049 with PID 2484 (C:\Users\Piotr\Documents\trade-bot\trade-bot\target\classes started by Piotr in C:\Users\Piotr\Documents\trade-bot\trade-bot)
2020-03-07 15:35:11.622 INFO 2484 --- [ main] com.xtb.tradebot.Application : No active profile set, falling back to default profiles: default
2020-03-07 15:35:12.179 INFO 2484 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2020-03-07 15:35:12.255 INFO 2484 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 63ms. Found 1 JPA repository interfaces.
2020-03-07 15:35:12.638 INFO 2484 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2020-03-07 15:35:13.123 INFO 2484 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2020-03-07 15:35:13.137 INFO 2484 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2020-03-07 15:35:13.137 INFO 2484 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.30]
2020-03-07 15:35:13.226 INFO 2484 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2020-03-07 15:35:13.226 INFO 2484 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1563 ms
2020-03-07 15:35:13.390 INFO 2484 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
2020-03-07 15:35:13.673 INFO 2484 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
2020-03-07 15:35:13.735 INFO 2484 --- [ main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default]
2020-03-07 15:35:13.830 INFO 2484 --- [ main] org.hibernate.Version : HHH000412: Hibernate Core {5.4.10.Final}
2020-03-07 15:35:13.995 INFO 2484 --- [ main] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.1.0.Final}
2020-03-07 15:35:14.131 INFO 2484 --- [ main] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
2020-03-07 15:35:14.731 INFO 2484 --- [ main] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]
2020-03-07 15:35:14.735 INFO 2484 --- [ main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2020-03-07 15:35:15.011 WARN 2484 --- [ main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2020-03-07 15:35:15.134 INFO 2484 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2020-03-07 15:35:15.369 INFO 2484 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2020-03-07 15:35:15.371 INFO 2484 --- [ main] com.xtb.tradebot.Application : Started Application in 4.035 seconds (JVM running for 4.357)
Журналы после вызова конечной точки контроллера "/":
2020-03-07 16:28:40.365 INFO 20336 --- [nio-8080-exec-2] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
2020-03-07 16:28:40.365 INFO 20336 --- [nio-8080-exec-2] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2020-03-07 16:28:40.374 INFO 20336 --- [nio-8080-exec-2] o.s.web.servlet.DispatcherServlet : Completed initialization in 9 ms
Это 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.2.4.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<groupId>com.xtb</groupId>
<artifactId>trade-bot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>trade-bot</name>
<description>trade-bot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>