Чтобы получить EntityManagerFactory, автоматически настраиваемую Spring Boot, вам необходимо использовать зависимость spring-boot-starter-data-jpa
. В вашем случае вы используете простой spring-data-jpa
Замените
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>2.3.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.hibernate.orm</groupId>
<artifactId>hibernate-core</artifactId>
<version>6.0.0.Alpha5</version>
</dependency>
на
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>2.3.0.RELEASE</version>
</dependency>
И убедитесь, что у вас есть сведения о подключении к базе данных в свойствах вашего приложения. файл.
См. Ниже фрагмент application.yml
для PostgreSQL соединения
spring:
datasource:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://localhost:5432/postgres
username: postgres
password: postgres
Обновление
Также, как указал @Mohammad Al Alwa отображение сущностей выглядит не очень хорошо. Типичный случай, когда объект ссылается на одного родителя.
В вашем случае это будет
@OneToOne
private Strain parent;
А в StrainRepository
вам нужно изменить
public boolean existStrainByName(String name);
на
public boolean existsByName(String name);
Обратите внимание, что вы можете сгенерировать таблицы базы данных из своих объектов, если вы предоставите spring.jpa.hibernate.ddl-auto
свойство
См. Ниже
spring:
datasource:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://localhost:5432/postgres
username: postgres
password: postgres
jpa:
hibernate:
ddl-auto: create-only