Данные весенней загрузки. sql не инициализирует данные в Postgresql - PullRequest
0 голосов
/ 27 марта 2020

У меня есть приложение Spring Rest Api. Это сущность :

@Entity
@Table(name="a_example")
public class Example
{
    @Id
    @GeneratedValue
    private Long id;

    private String name;
    private String description;

    @Column(unique = true, nullable = false)
    private String filename;
}

Вот мои данные. sql в папке ресурсов:

INSERT INTO a_example(name, description, filename) VALUES('Xyz', 'Lorem ipsum', 'xyz');

INSERT INTO a_example(name, description, filename) VALUES('Pqr', 'Lorem ipsum', 'pqr');

И мой application.properties :

spring.datasource.url=jdbc:postgresql://localhost:5432/xyz
spring.datasource.username=admin
spring.datasource.password=admin
spring.datasource.driverClassName=org.postgresql.Driver
spring.datasource.initialization-mode=always
spring.datasource.initialize=true
spring.datasource.data=classpath:data.sql

spring.jpa.generate-ddl=true
spring.jpa.properties.hibernate.ddl-auto=create

spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults = false
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQL9Dialect

Таблица существует, я могу добавлять данные другими способами, но я бы предпочел данные. sql для ее инициализации.

Чего мне не хватает?

1 Ответ

1 голос
/ 27 марта 2020

Измените spring.jpa.properties.hibernate.ddl-auto=create на spring.jpa.hibernate.ddl-auto=create в файле application.properties и измените аннотацию GeneratedValue в сущности Example, как показано ниже:

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

К вашему сведению: вы можете использовать библиотеки Liquibase или Flyway тоже.

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