스프링/jpa4 [fix] Enum 값 추가 시 발생하는 'Data truncated for column' 오류 해결 방법 (feat: AttributeConverter) 상황Enum에 새로운 상수를 추가해 주고, ddl-auto로 프로그램을 제 빌드 하였지만 추가된 enum 상수를 찾지 못하고 java.sql.SQLException: Data truncated for column 에러가 발생했다. 이는 Hibernate6 부터 ddl-auto 기능이 기본적으로, 데이터베이스 스키마 일부만 업데이트 되도록 변경되었기 때문이다. 따라서 새로운 enum 상수를 추가해 주어도 스키마에 반영되지 않았다.내용test - enum, entity 생성 지금 상황에서는 animalType 테이블 구조를 살펴보면 Data Type에 CAT,DOG,LION 잘 저장된 것을 확인 할 수 있다. 하지만 여기서 AnimalType에 BIRD 를 추가한다면 어떻게 될까??? BIRD를 추가한 후 .. 2024. 11. 14. 영속성 컨텍스트란? 영속성 컨텍스트란 무엇일까??? JPA를 사용하다면 Update 쿼리문을 작성하지 않았는데도 데이터가 수정되는 것을 알수 있다. 그것은 단순히 JPA 기능이라고 알고 있기 보다는 JPA가 어떻게 데이터베이스와 교류하는지 알아보자. 엔티티 매니저 팩토리 와 엔티티 매니저데이터베이스를 하나만 사용하는 애플리케이션은 일반적으로 EntityManagerFactory를 하나만 생성한다. 엔티티매니저 팩토리는 이름에서 알 수 있듯이 엔티티매니저를 생성하는 곳이다. 엔티티매니저 팩토리는 여러 스레드가 동시에 접근해도 안전하지만 엔티티 매니저는 여러 스레드가 동시에 접근하면 동시성 문제가 발생하므로 스레드 간에 공유를 하면 안된다. 영속성 컨텍스트란?영속성 컨텍스트는 jpa 에서 엔티티메니저에 의해 관리되는 일종의 .. 2024. 9. 14. User들의 권한 관계 많은 사회에는 계급이 있다. 물론 회사에서도 계급이 존재하고 계급별로 가지는 권한도 다 다를것이다. 또한 자신이 속해있는 소속에 따라 주어지는 권한도 각기 다를것이다. 이 문제를 어떻게 해결할까 고민해 보았다. 1. 계급첫번째는 계급이라 하면 우리가 흔히 user 에게 주는 권한이다. 맨처음 개발 공부를 시작하고 회원가입 로직을 생성할때 Role 이라는 enum을 많이 생성해 보았을 것이다. USER, ADMIN 보통은 이렇게 두가지 상수를 많이 선언했을것이다. 그러나 이번에는 공부를 위해서 MANAGER를 하나 더 추가해 보자 @Getterpublic enum Role { USER("회원"), MANAGER("매니저"), ADMIN("관리자"); private final Str.. 2024. 8. 7. 연관 관계를 무조건 맺는것이 좋을까? 게시글에 대한 좋아요 기능을 개발하다 문득 궁금증이 들었다. 연관 관계는 무조건 맺는 것이 좋을까?연관 관계를 맺으면 데이터 탐색의 편의성과 일관성 및 참조 무결성 유지등 다양한 장점들이 있다. 하지만 단점도 분명히 있다는 것이다. 그래서 이번 토이 프로젝트를 진행하던 도중 의문점이 생겼다. 먼저 코드를 보자 1. 게시글 좋아요 코드@Entity@AllArgsConstructor@NoArgsConstructor@Getter@Builder@Table( name = "article_like", uniqueConstraints = { @UniqueConstraint(columnNames = {"member_id", "article_id"}) },.. 2024. 8. 4. 이전 1 다음