공부/에러노트
[Spring] Hibernate Enum 사용시 type 문제
aerhergag0
2024. 1. 31. 19:43
문제발생
- Hibernate 6 이후
Schema-validation: wrong column type encountered in column [status] in table [user];
found [varchar (Types#VARCHAR)], but expecting [enum ('registered','unregistered') (Types#ENUM)]
다음과 같은 문제 발생
class UserEntity, enum UserStatus
@Entity
@Table(name = "user")
public class UserEntity extends BaseEntity {
...
@Column(nullable = false, length = 50)
@Enumerated(EnumType.STRING)
private UserStatus status;
...
@AllArgsConstructor
public enum UserStatus {
REGISTERED("등록"),
UNREGISTERED("미등록"),
;
private final String description;
}
내가 해결한 방법
@Entity
@Table(name = "user")
public class UserEntity extends BaseEntity {
...
@Column(nullable = false, length = 50,
columnDefinition = "varchar(50) default 'REGISTERED'")
@Enumerated(EnumType.STRING)
private UserStatus status;
...
@Column의 columnDefinition으로 강제 타입변환
더 좋은 방법을 찾으면 기록할것