인프런 커뮤니티 질문&답변

s_971001님의 프로필 이미지
s_971001

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

JPA와 DB 설정, 동작확인

Java HotSpot 에러가 뜹니다

작성

·

477

·

수정됨

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
안녕하세요.

jar빌드도 되고 다 member테이블도 생겼습니다. 그런데 마지막 단계에서 계속 이런 오류가 뜨면서 쿼리파라미터 로그는 확인할 수 없는데요, 어느 부분이 잘못되었는지 모르겠습니다ㅠㅠ

제가 적은 코드입니다 (Junit5로 진행했습니다)

package jpabook.jpashop;

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.annotation.Rollback;
import org.springframework.transaction.annotation.Transactional;

import static org.junit.jupiter.api.Assertions.*;

@SpringBootTest
public class MemberRepositoryTest {
    @Autowired
    MemberRepository memberRepository;

    @Test
    @Transactional // test에 있으면 test 끝난 뒤 바로 롤백함 -> 테스트 조회 불가능
    @Rollback(false) // 롤백 안되게!
    public void testMember() throws Exception {
        // given
        Member member = new Member();
        member.setUsername("memberA");

        // when
        Long saveId = memberRepository.save(member);
        Member findMember = memberRepository.find(saveId);

        // then
        assertEquals(findMember.getId(), member.getId());
        assertEquals(findMember.getUsername(), member.getUsername());
        assertEquals(findMember, member); // 같은 트랜잭션 안에서는 영속성 콘텍스트가 같음 => id가 같으면 같은 엔티티로 식별함
        System.out.println("findmember == member: " + (findMember == member));
    }
}
spring:
  datasource:
    url: jdbc:h2:tcp://localhost/~/jpashop
    username: sa
    password:
    driver-class-name: org.h2.Driver

  jpa:
    hibernate:
      ddl-auto: create #application 실행 시점에 기존에 있으면 drop하고 없으면 자동으로 테이블 생성
    properties:
      hibernate:
#        show_sql: true #sysout으로 확인 -> logger로 확인할 것이므로 생략하자!
        format_sql: true

logging:
  level:
    org.hibernate.SQL: debug #logger로 확인: hibernate가 생성하는 모든 sql문이 debug로 확인가능
    org.hibernate.type: trace #쿼리 파라미터 로그 남기기

감사합니다!

답변 2

0

안녕하세요. s_971001님, 공식 서포터즈 OMG입니다.

스프링 부트의 버전을 몇으로 하셨을까요?

2.x대와 3.x대의 로깅 설정이 다르니 확인해주세요 😀

image

Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended 관련

자바9부터 발생할 수 있는 메시지 이며 실행에 영향이 가서 오류가 발생하는 메시지는 아닙니다.

해결방안은 아래 링크의 제 답변과 AI인턴 답변을 참고하여 확인 부탁드립니다 😀

https://www.inflearn.com/questions/917150/openjdk-64-bit-server-vm-warning

감사합니다.

s_971001님의 프로필 이미지
s_971001
질문자

안녕하세요 ㅠㅠ 로깅 설정을 적어주신 대로 바꿨는데 로그는 남습니다! 다만 ㅠㅠ HotSpot 메시지는 위치만 바뀌었을 뿐 여전히 뜹니다..!

spring:
  datasource:
    url: jdbc:h2:tcp://localhost/~/jpashop
    username: sa
    password:
    driver-class-name: org.h2.Driver

  jpa:
    hibernate:
      ddl-auto: create #application 실행 시점에 기존에 있으면 drop하고 없으면 자동으로 테이블 생성
    properties:
      hibernate:
#        show_sql: true #sysout으로 확인 -> logger로 확인할 것이므로 생략하자!
        format_sql: true

logging:
  level:
    org.hibernate.SQL: debug #logger로 확인: hibernate가 생성하는 모든 sql문이 debug로 확인가능
    org.hibernate.orm.jdbc.bind: trace #스프링부트 3.x, 쿼리 파라미터 로그 남기기

0

안녕하세요, 인프런 AI 인턴입니다.

s_971001님, Java HotSpot 에러가 발생하고 쿼리 파라미터 로그를 확인할 수 없다는 문제를 겪고 계시군요. 해당 문제와 유사한 상황을 겪었던 다른 수강생의 질문과 그에 대한 답변이 도움이 될 수 있을 것 같습니다. application.yml 설정과 관련하여 H2 데이터베이스 접속이나 JPA 설정에 문제가 있을 수 있으니, 아래의 링크로 접속하여 유사한 사례의 해결 방법을 확인해 보시길 권장드립니다.

각 링크를 통해 비슷한 문제를 겪었던 다른 수강생의 상황과 해결 방안을 살펴보시고, 설정 파일을 다시 한 번 확인해 보시면 좋을 것 같습니다. 도움이 필요하시면 해당 질문에 추가적으로 댓글을 달아주시면 강사님이나 다른 수강생들이 더 자세한 도움을 제공해드릴 것입니다.

도움이 되시길 바랍니다.

s_971001님의 프로필 이미지
s_971001

작성한 질문수

질문하기