정구리의 우주정복

[Spring] Entity에서 Enum 사용하는 법 (org.postgresql.util.PSQLException: Bad value for type byte : 해결) 본문

JAVA/PROJECT

[Spring] Entity에서 Enum 사용하는 법 (org.postgresql.util.PSQLException: Bad value for type byte : 해결)

Jungry_ 2024. 5. 30. 23:17
반응형

 

해당 에러는 JPA가 'enum' 타입을 데이터베이스에 올바르게 매핑하지 못해서 발생하는 에러다

JPA가 'enum' 타입을 DB 에 저장하고 검색할 수 있도록 

'@Enumerated' 어노테이션을 추가해주면 된다 !

 

 

기존 코드

@Entity
@Table(name = "recommend")
public class Recommend {

    @Id
    @Column(name = "id")
    @GeneratedValue(strategy = GenerationType.UUID)
    private String id;

    @Column(name = "user_id")
    private String userId;

    @Column(name = "password")
    private String password;

    @Column(name = "recommend_type")
    private RecommendType recommendType;

    @Column(name = "title")
    private String title;

    @Column(name = "contents")
    private String contents;

    @Column(name = "image")
    private String image;

    @Column(name = "created_date")
    private LocalDateTime createdDate;

    @Column(name = "modified_date")
    private LocalDateTime modifiedDate;
    
    이하생략
    
    }

 

Enum 인 RecommendType 을 사용하고 있는 recommend_type 에 해당 어노테이션을 추가해주면 된다

 

수정 코드

    @Enumerated(EnumType.STRING)
    @Column(name = "recommend_type")
    private RecommendType recommendType;

 

@Enumerated(EnumType.STRING) 애노테이션을 추가했으므로, JPA는 enum 값을 문자열로 저장하게 된다

 

이렇게 수정해주면 해결 !

반응형
Comments