legacy/JPA
-
[JPA] Auditing을 사용하여 시간을 저장하는 방법legacy/JPA 2024. 2. 29. 00:16
DB 컬럼에 누가, 언제 작업을 하였는지에 대한 기록을 반드시 남겨야 한다. 그렇지 않는다면 나중에 문제가 발생하였을 때 언제 문제가 발생하였는지 추적하는 게 매우 어렵게 된다. 그렇다면 엔티티를 다음과 같이 설계를 해야할 것 같다. @Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Comment { private String content; // 작성 내용 private LocalDateTime createdDate; // 작성 시간 private LocalDateTime lastModifiedDate; // 수정 시간 } 댓글을 등록한 시간, 수정한 시간을 저장하는 필드가 있다. 이것은 좋은 방법이라고 할 수..
-
[JPA-Error] Table [DB명.Table명] doesn't exist 해결방법legacy/JPA 2024. 2. 21. 15:10
문제 발생 스프링부트에서 테이블을 생성하여 값을 저장하려고 하면 다음과 같은 오류가 발생했다. org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute statement [Table 'cicd_db.users' doesn't exist] [insert into users (age,username) values (?,?)]; SQL [insert into users (age,username) values (?,?)] 문제 원인 "Table 'cicd_db.users' doesn't exist" 이부분이 핵심인 듯하다. 나는 "Users" 테이블에 데이터를 삽입하려고 하는데 실제로는 "cicd_db.users" 테이블..
-
[JPA-Error] fetch join과 new 연산자를 통한 DTO 변환legacy/JPA 2024. 2. 6. 15:03
문제 발생 먼저 정의된 Entity를 먼저 보겠다. Member Entity Team과 N:1 연관관계에 있다. :age and m.username = :username" ) public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "member_id") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "team_id") private Team team; private String username; private int age; /** * 연관관계 편의 메서드 */ public void changeTeam(Team t..
-
[JPA] 연관관계에 있는 엔티티 영속화 시키기, CASCADElegacy/JPA 2024. 1. 26. 17:48
엔티티 A와 B가 영속관계에 있을 때 A를 영속화시켰을 때 자동으로 B까지 영속화시키려면 CASCADE를 사용해야 합니다. 사용방법에 대해서 알아보겠습니다. CASCADE란? CASCADE란 영속성 전이라고 합니다. 특정 엔티티를 영속 상태로 만들 때 연관된 엔티티도 함께 영속 상태로 만들고 싶을 때 사용합니다. JPA는 CASCADE 옵션을 제공하여 em.persist()를 사용하지 않아도 엔티티를 영속화시킬 수 있습니다. CASCADE의 옵션은 다음과 같습니다. ALL, 아래에 있는 모든 옵션 적용 PERSIST, 특정 엔티티 영속화 MERGE, 병합 REMOVE, 삭제 REFRESH DETACH 연관관계에 있는 Entity 영속화, Cascade.PERSIST A엔티티를 영속화시킬 때 연관관계에 있..
-
[JPA-Error] 빌더 패턴을 사용하여 양방향 연관관계를 맺을때 NullPointerException 예외 발생legacy/JPA 2024. 1. 21. 16:32
문제 발생 @ManyToOne 그리고 @OneToMany로 양방향 연관관계를 맺으면 NullPointerException이 발생하였다. Board(게시물)와 View(조회수, 좋아요) Entity 간의 연관관계를 맺었다. Board Entity @Entity @Getter @Builder @AllArgsConstructor @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Board { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "board_id") private Long id; private String title; // 제목 private String conte..
-
[JPA-Error] 게시물 조회 순환참조 stackoverflowlegacy/JPA 2024. 1. 20. 23:06
현재 상황 양방향 참조 관계에 있는 Entity를 조회하는 과정에서 StackOverFlow 예외가 발생하였다. 일단 양방향 관계에 있는 Member와 Board Entity이다. Member Entity @Entity @Getter @Builder @AllArgsConstructor @NoArgsConstructor(access = AccessLevel.PROTECTED) @ToString(of = {"loginId", "password", "username", "nickName", "email", "phone"}) public class Member { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "member_id") pr..