Я использую 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;