I'm working on Spring boot project. Actually, refactoring code.
And getting this mistake as follows: Failed to initialize JPA EntityManagerFactory: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.MappingException: Could not determine type for: ru.kataproject.p_sm_airlines_1.entity.Document, at table: passenger, for columns: [org.hibernate.mapping.Column(document)]
Any ideas?
Document.java
import lombok.Getter; import lombok.Setter; import ru.kataproject.p_sm_airlines_1.util.enums.DocumentType;
import javax.persistence.*; import java.time.LocalDateTime;
@Entity @Getter @Setter @Table(name="document") public class Document { @Id @GeneratedValue(strategy = GenerationType.IDENTITY, generator = "document_gen") @SequenceGenerator(name = "document_gen", sequenceName = "document_sequence", allocationSize = 1) @Column(name = "id", nullable = false) private Long id;
@Column(name = "document_type", nullable = false) private DocumentType documentType; @Column(name = "document_number") private String documentNumber; @Column(name = "registration_address") private String registrationAddress; @Column(name = "where_issued") private String whereIssued; @Column(name = "department_code") private String departmentCode; @Column(name = "date_of_issue") private LocalDateTime dateOfIssue; //todo one to one link to person entity @Column(name = "person") private String person = "link to person entity"; }
Passenger.java
import lombok.*; import javax.persistence.*; import java.time.LocalDate; @Getter @Setter @Entity @AllArgsConstructor @NoArgsConstructor @Table(name = "passenger", schema = "public") public class Passenger { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name="id") private Long id; @NonNull @Column(name="document") private Document document; // Заглушка , здесь должна быть сущность Document @NonNull @Column(name="email") private String email; @NonNull @Column(name="first_name") private String first_name; @NonNull @Column(name="last_name") private String last_name; @NonNull @Column(name="middle_name") private String middle_name; @NonNull @Column(name="date_of_birth") private LocalDate date_of_birth; } 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> <groupId>ru.kataproject</groupId> <artifactId>airline_project_1</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>airline_project_1</name> <description>Реализуем функционал авиакомпании на базе прототипа</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.5</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>11</java.version> <springdoc.openapi.version>1.4.8</springdoc.openapi.version> <apache-httpcomponents-version>4.5.13</apache-httpcomponents-version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> <version>2.7.4</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> <version>2.7.4</version> </dependency> <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-ui</artifactId> <version>${springdoc.openapi.version}</version> </dependency> <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-data-rest</artifactId> <version>${springdoc.openapi.version}</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>${apache-httpcomponents-version}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <version>2.7.4</version> <scope>test</scope> <exclusions> <exclusion> <groupId>junit</groupId> <artifactId>junit</artifactId> </exclusion> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>5.7.0</version> <scope>test</scope> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.20</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>42.5.0</version> </dependency> <dependency> <groupId>org.thingsboard</groupId> <artifactId>springfox-swagger2</artifactId> <version>3.0.4</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> <version>2.7.0</version> </dependency> <dependency> <groupId>org.liquibase</groupId> <artifactId>liquibase-core</artifactId> </dependency> <dependency> <groupId>org.testcontainers</groupId> <artifactId>postgresql</artifactId> <version>1.17.4</version> <scope>test</scope> </dependency> <dependency> <groupId>org.testcontainers</groupId> <artifactId>testcontainers</artifactId> <version>1.17.5</version> <scope>test</scope> </dependency> <dependency> <groupId>org.testcontainers</groupId> <artifactId>junit-jupiter</artifactId> <version>1.17.5</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> <version>2.7.3</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.keycloak</groupId> <artifactId>keycloak-spring-boot-starter</artifactId> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.keycloak.bom</groupId> <artifactId>keycloak-adapter-bom</artifactId> <version>12.0.3</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
keycloak-spring-boot-starterandkeycloak-adapter-bomwhich are very deprecated. Refer to this set of tutorials to usespring-boot-starter-oauth2-resource-serverinstead (directly as done in first tutorial or one of the starters to auto-configure it from properties as done in other tutorials).