我正在使用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
);
尝试保存到数据库时,出现以下错误:
错误:列“状态”的类型为photo_status,但表达式的类型为 字符变化
org.springframework.dao.InvalidDataAccessResourceUsageException:可以 不执行语句; SQL [n / a];嵌套异常为 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;