Проект Spring Boot не запускается из-за проверки схемы: отсутствует последовательность [hibernate_sequence] - PullRequest
0 голосов
/ 02 июня 2018

Когда я пытаюсь запустить приложение Spring Boot и Hibernate, я обнаруживаю, что оно падает из-за:

org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: missing sequence [hibernate_sequence]

Но я не могу понять, почему это происходит, потому что яя не использую Hibernate последовательности.Мои таблицы в Apache Derby выглядят следующим образом:

CREATE TABLE TEAM (
  TEAM_ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),    
  NAME VARCHAR(50) NOT NULL,    
  CONSTRAINT PK_TEAM PRIMARY KEY(Team_Id)
);

CREATE TABLE PLAYER (
  PLAYER_ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),    
  NAME VARCHAR(50) NOT NULL,  
  NUM INTEGER NOT NULL, 
  POSITION VARCHAR(50) NOT NULL,    
  TEAM_ID INTEGER, 
  CONSTRAINT PK_PLAYER PRIMARY KEY(PLAYER_ID),
  CONSTRAINT FK_PLAYER FOREIGN KEY(TEAM_ID) REFERENCES TEAM(TEAM_ID)
);

Файл application.properties моего приложения:

# Hibernate table generation.
spring.jpa.hibernate.ddl-auto=validate
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.DerbyTenSevenDialect
spring.jpa.show-sql=true    

# Apache Derby settings
spring.datasource.driverClassName=org.apache.derby.jdbc.ClientDriver
spring.datasource.url=jdbc:derby://localhost:1527/Library
spring.datasource.username=username
spring.datasource.password=password`

И два задействованных Java-класса:

@Entity
@Table(name = "TEAM")
public class Team {

    @Id
    @Column(name = "TEAM_ID", unique = true, nullable = false)
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer teamId;

    @Column(name = "NAME")
    private String name;

    @OneToMany(cascade = CascadeType.ALL,
            fetch = FetchType.EAGER,
            mappedBy = "team")
    private List<Player> players;

И:

@Entity
@Table(name = "PLAYER")
public class Player {

    @Id
    @Column(name = "PLAYER_ID", unique = true, nullable = false)
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer playerId;

    @Column(name = "NAME")
    private String name;

    @Column(name = "NUM")
    private int num;

    @Column(name = "POSITION")
    private String position;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "TEAM_ID", nullable = true)
    private Team team;

Кто-нибудь может посоветовать, где я не прав?

Зависимости Maven:

<dependencies>

      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter</artifactId>
      </dependency>
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-data-jpa</artifactId>
      </dependency>
      <dependency>
            <groupId>org.apache.derby</groupId>
            <artifactId>derbyclient</artifactId>
            <version>10.14.2.0</version>
        </dependency>      
  </dependencies>

1 Ответ

0 голосов
/ 02 июня 2018

Вы столкнулись с проблемой, поскольку отсутствует последовательность hibernate_sequence.Вы можете создать последовательность вручную в вашей БД, используя create sequence <schema>.hibernate_sequence.Для получения дополнительной информации о создании последовательности в Derby перейдите по ссылке .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...