JPA Как создать Enum для сохранения - PullRequest
0 голосов
/ 28 апреля 2019

Я использую Spring Boot.

У меня есть следующая таблица:

CREATE TYPE photo_status as enum('pending', 'completed', 'processing', 'failed');
CREATE TABLE photos (
    uuid uuid DEFAULT gen_random_uuid() PRIMARY KEY,
    url text NOT NULL,
    status photo_status DEFAULT 'pending' NOT NULL,
    created_at timestamp with time zone DEFAULT now() NOT NULL
);

При попытке сохранить в базе данных я получаю следующую ошибку:

ОШИБКА: столбец "status"имеет тип photo_status, но выражение имеет тип символа, различающийся

org.springframework.dao.InvalidDataAccessResourceUsageException: не удалось выполнить оператор;SQL [н / п];вложенным исключением является org.hibernate.exception.SQLGrammarException: не удалось выполнить оператор

Я думаю, что моя проблема связана с emum (PhotoStatus) в сущности.

Вопрос

Я не могу изменить сценарий SQL, чтобы изменить таблицу.Так как я могу изменить свою сущность для работы с существующей таблицей?

код

сущность

@Entity
@Table(name = "photos")
public class PhotoEntity {

    public enum PhotoStatus {
        pending,
        complete,
        processing,
        failed
    }

    @Id
    @Column(name = "uuid")
    private UUID uuid;

    @Column(name = "url", nullable = false)
    private String url;

    @Enumerated(EnumType.STRING)
    @Column(columnDefinition = "photo_status", nullable = false)
    private PhotoStatus status;

    @Column(name = "created_at", nullable = false)
    private LocalDateTime created_at;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...