Получите Flyway с Hibernate и Springboot для работы - PullRequest
0 голосов
/ 07 января 2019

Я пытаюсь настроить небольшое приложение Springboot, где я хотел бы использовать flyway для переноса данных и hibernate для обработки сущностей во время выполнения. Я использую базу данных Postgre SQL.

Я уже запустил приложение и запустил его, создавая таблицы SQL. Репозитории, созданные Springboot, работают в случае отсутствия данных в базе данных, но если я хочу создать данные или попытаться получить данные из базы данных (которые я вставил напрямую), я получаю сообщение об ошибке:

org.postgresql.util.PSQLException: ERROR: column event0_.category does not exist 
Hint: Perhaps you meant to reference the column "event0_.category_id".

Ошибка появляется в столбце, который содержит внешний ключ, определение таблиц sql:

CREATE TABLE fin_categories (id BIGINT NOT NULL, name VARCHAR(255) NOT NULL, parent_category BIGINT, PRIMARY KEY (id));

CREATE TABLE fin_events (id BIGINT NOT NULL, name VARCHAR(255) NOT NULL, amount INTEGER, currency VARCHAR(10), category_id BIGINT, PRIMARY KEY (id), FOREIGN KEY(category_id) REFERENCES fin_categories (id));

Сущности (сокращены до соответствующих):

@Entity
@Table(name = "fin_events")
public class Event implements Serializable {

    private static final long serialVersionUID = 6768956341367037388L;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private long id;

    @OneToOne(optional = true)
    @JoinColumn(name = "category_id")
    private Category category;
}


@Entity
@Table(name = "fin_categories")
public class Category implements Serializable {

    private static final long serialVersionUID = 450309297916394998L;

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

    private String name;
}

Я не уверен, что файл свойств приложения уместен, поэтому просто чтобы убедиться:

spring.datasource.jdbcUrl=jdbc:postgresql://192.168.99.100:5432/finances
spring.datasource.username= admin
spring.datasource.password= bLCMXF7T6dxP2EFK
spring.datasource.initialization-mode= always
spring.datasource.database-platform =  org.hibernate.dialect.PostgreSQLDialect

spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults = false

spring.jpa.hibernate.ddl-auto = validate

Мне уже требовалось много времени и я получал много разных ошибок, но я чувствую, что это самое близкое к ключевой проблеме.

Спасибо, ребята, за помощь!

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