나를 기록하다
article thumbnail
[Spring Boot]쿼리 파라미터 로그 남기기, SQL 한줄 출력 해결
Error/Spring Boot 2023. 7. 12. 10:55

에러 내용 1) 발생 2) 원인 구글링을 통해 여러 사람들이 말한 방법들을 다 해봤다. 우선 나는 스프링부트 2.7.~ 을 사용 중이다. 우선 쿼리파라미터는 아래의 라이브러리와 로깅 구문을 통해 해결할 수 있다. 스프링부트 2.x 외부 라이브러리 추가 implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.5.6' application.yml에 logging 구문 추가 logging: level: org.hibernate.SQL: debug org.hibernate.type: trace 스프링부트 3.0 이상을 사용할 경우 외부 라이브러리 추가 implementation 'com.github.gavlyukovskiy:p6spy-sprin..

article thumbnail
[Spring Boot] assertThat 호출 오류 해결
Error/Spring Boot 2023. 7. 11. 21:38

1. assertThat 호출 오류(import 구문 문제) 1) 발생 위와 같이 Assertions을 임포트하였으나 assertThat에 빨간줄이 그이는 것을 확인할 수 있다. 2) 원인 이유를 찾기 위해 서핑 결과, Intellij에서 자동으로 import 해주는 구문의 문제라는 것을 알 수 있었다. 3) 해결 [intelliJ] assertThat import 안되는 오류 [intelliJ] assertThat import 안되는 오류 문제 발생 assertThat을 사용하기 위해 AssertJ를 import를 하려고 했는데 import가 안되는 문제가 발생했다. 해결 방법 import static org.junit.Assert.*; 테스트를 생성할 때 자동으로 들어가는 import문을 지워주 sh..

article thumbnail
[TIL-10 / 230628] JPA 값 타입(임베디드 타입, 값 타입 컬렉션)
TIL 2023. 6. 28. 23:24

1. 기본값 타입 1) JPA의 데이터 타입 분류 엔티티 타입 @Entity로 정의하는 객체 데이터가 변해도 식별자로 지속해서 추적 가능 예) 회원 엔티티의 키나 나이 값을 변경해도 식별자로 인식 가능 값 타입 int, Integer, String처럼 단순히 값으로 사용하는 자바 기본 타입이나 객체 식별자가 없고 값만 있으므로 변경시 추적 불가 예) 숫자 100을 200으로 변경하면 완전히 다른 값으로 대체 2) 값 타입 분류 기본값 타입 자바 기본 타입(int, double) 래퍼 클래스(Integer, Long) String 예) String name, int age 생명주기를 엔티티에 의존 회원을 삭제하면 이름, 나이 필드도 함께 삭제 값 타입은 공유하면 안된다. 회원 이름 변경시 다른 회원의 이름..

article thumbnail
[TIL-9 / 230627] 프록시 - 즉시로딩과 지연로딩, 고아 객체
TIL 2023. 6. 27. 22:12

2. 즉시 로딩과 지연 로딩 단순히 member 정보만 사용하는 비즈니스 로직 member 클래스 @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "TEAM_ID") private Team team; → 멤버 클래스만 db에서 조회한다는 뜻 JpaMain Member m = em.find(Member.class, member1.getId()); 결과 Hibernate: select member0_.MEMBER_ID as MEMBER_I1_3_0_, member0_.INSERT_MEMBER as INSERT_M2_3_0_, member0_.createdDate as createdD3_3_0_, member0_.UPDATE_MEMBER as UPDATE_M4_..

article thumbnail
[TIL-8 / 230623] JPA 프록시
TIL 2023. 6. 24. 15:23

1. 프록시 Member를 조회할 때 Team도 함께 조회해야 할까? 회원과 팀 함께 출력 public void printUserAndTeam(String memberId) { Member member = em.find(Member.class, memberId); Team team = member.getTeam(); System.out.println("회원 이름: " + member.getUsername()); System.out.println("소속팀: " + team.getName()); } 회원만 출력 public void printUser(String memberId) { Member member = em.find(Member.class, memberId); Team team = member.ge..

article thumbnail
[TIL-7 / 230622] JPA 다양한 연관관계 매핑과 고급매핑
TIL 2023. 6. 23. 11:58

5. 다대다 [N : N] 관계형 데이터베이스는 정규화된 테이블 2개로 다대다 관계를 표현할 수 없음. 연결 테이블을 추가해서 일대다, 다대일 관계로 풀어내야함 객체는 컬렉션을 사용해서 객체 2개로 다대다 관계 가능 사용방법 @ManyToMany 사용 @JoinTable로 연결 테이블 지정 다대다 매핑: 단방향, 양방향 가능 다대다 매핑의 한계 편리해보이지만 실무에서 사용X 연결 테이블이 단순히 연결만 하고 끝나지 않음 주문시간, 수량 같은 데이터가 들어올 수 있음 다대다 한계 극복 연결 테이블용 엔티티 추가(연결 테이블을 엔티티로 승격) @ManyToMany → @OneToMany, @ManyToOne 6. 실전 예제 - 3. 다양한 연관관계 매핑 배송, 카테고리 추가 - 엔티티 주문과 배송은 1:1(..

profile on loading

Loading...