JAVA/에러

wrong column type encountered in column enum, enum 인식 못할

whyHbr 2024. 5. 23. 01:18
728x90
반응형

 

Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. 2024-05-23T00:56:36.994+09:00 ERROR 11464 --- [ main] o.s.boot.SpringApplication : Application run failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: wrong column type encountered in column [category] in table [store]; found [varchar (Types#VARCHAR)], but expecting [enum ('chineess_food','western_food','korean_food','japeness_food','chicken','pizza','hamburger','coffee_tea') (Types#ENUM)]package org.delivery.db.store;

 

 

데이터베이스 테이블의 컬럼 타입과 엔티티 클래스의 필드 타입이 일치하지 않아서 발생합니다. 구체적으로는 store 테이블의 category 컬럼이 varchar 타입인데, 엔티티 클래스에서는 enum 타입으로 매핑되어 있어 타입 불일치가 발생한 것입니다.

 

@Enumerated(EnumType.STRING)

 

이걸 사용했는데도 에러가 떴다

 

 

해결 방법 :

columnDefinition = "varchar(45)

 

이거 추가해주니 정상 작동!

 

@Column(nullable = false, columnDefinition = "varchar(45)")
@Enumerated(EnumType.STRING)
private StoreStatus status;

@Column(nullable = false, columnDefinition = "varchar(45)") //enum으로 인식 못할때
@Enumerated(EnumType.STRING)
private StoreCategory category;

이렇게

 

 

728x90