작성
·
323
0
강의 보았을때 org.hibernate.orm.jdbc.bind: trace을 추가하면
insert 구문을 트레이스에서 볼 수 있었는데 제가 하니까 다른 형태로 나와서 질문 남깁니다.
이것은 왜 그런 것일까요?
혹시모르니 yml파일 내용도 첨부해 봅니다.
spring:
datasource:
url: jdbc:h2:~/jpashop
username: sa
password:
driver-class-name: org.h2.Driver
jpa:
hibernate:
ddl-auto: create
properties:
hibernate:
# show-sql: true
format_sql: true
logging:
level:
org.hibernate.orm.jdbc.bind: trace
org.hibernate.SQL: debug
답변 2
0
프로젝트 코드 확인해보았습니다. 문제가 발생하는 애플리케이션 실행 코드가 정상 동작합니다.
다음을 확인하여 진행해주세요.
h2는 실행중인 상태에서 테스트해주세요.
h2 버전
h2는 2.2.224를 설치하여 진행.
h2 db파일의 위치
윈도우 : C:\USERS\OMG(계정명)\
맥: home\계정명\
h2파일 이름(확장자 포함)
jpashop.mv.db
jpashop.mv.db 파일 재생성
다음 링크(클릭)의 해결방안2[ 빈 텍스트 파일로 확장자를 변경하는 방법 ]를 참고하여 jpashop.mv.db을 h2 db파일의 위치 경로에 생성
h2설정
db 파일의 경로가 서로 상이한 이유를 잘 모르겠습니다. home경로의 경우 일반적으로 Mac OS의 경로명을 따르고 있어서 Mac을 사용중이실 것이라 생각하였는데, c/Users 라고 하신것으로 보아 윈도우를 사용중이신 것 같기도 하네요.
중요한 것은 아래 기본 경로 위치에 db파일이 존재해야 h2가 인식한다는 것입니다.
별도의 h2설정을 변경하신 것인지는 모르겠으나 아래의 기준을 따라주세요.
h2 db파일의 위치
윈도우 : C:\USERS\OMG(계정명)\jpashop.mv.db
맥: home\계정명\jpashop.mv.db
그래서 c/Users/dongw 위치에 test.mv.db가 있고
home/dong 에는 jpashop.mv.db가 있는 상황입니다.
해결이 안될 경우 댓글남겨주세요.
0
다음 절차를 진행해주세요
기존에 생성된 jpashop.mv.db 삭제
터미널 접속 -> home/dong 경로에서 다음 명령어 입력
rm -rf jpashop.mv.db
h2 삭제
스프링 프로젝트와 호환되는 h2 버전 확인
제 화면은 1.4.200 이지만, 2.1.214
혹은 2.2.224
로 되어있을거에요
확인한 h2버전에 맞게 h2재설치
DB파일 재생성
home/dong 경로에서 다음 명령어 입력
touch jpashop.mv.db
새로 설치한 h2 실행
접속 확인
url => jdbc:h2:tcp://localhost/~/test
username => sa
password => 공란
이 절차대로 진행해주시고, 해결이 안될 경우 직접 실행한 7번의 화면을 캡쳐로 남겨주세요.
재설치 후 ./h2.sh 를 통해 접속 확인 타이밍에서 아래의 유알엘을 넣고 접속을 하려 했더니 아래의 에러가 나왔습니다.
url => jdbc:h2:tcp://localhost/~/test
Database "/home/dong/test" not found, either pre-create it or allow remote database creation (not recommended in secure environments) [90149-224] 90149/90149 (도움말)
(1) jpashop.mv.db 파일이 home/dong에 존재하고
(2) application.yml에 url: jdbc:h2:tcp://localhost/~/jpashop 되어 있고,
(3) h2가 실행중이고, url이 localhost:8082/~?jsession~ 이렇게 잘 되어 있어서 특이사항은 보이지 않습니다.
다만 한가지 짚이는 점은
properties 위치가 실제 위치해야하는 띄어쓰기가 적용되어 있지 않은 것 같아요.
그래서 전반적인 코드 확인도 같이 필요할 것 같습니다.
실제 동작하는 전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.
구글 드라이브 업로드 방법은 다음을 참고해주세요.
주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요
추가로 다음 내용도 코멘트 부탁드립니다.
1. 문제 영역을 실행할 수 있는 방법
2. 문제가 어떻게 나타나는지에 대한 상세한 설명
링크: 공식 서포터즈
링크: 자주하는 질문
감사합니다.
링크 첨부합니다.
https://drive.google.com/file/d/1XZLZisel5v0UnXx7BoYibunK09-0Pma5/view?usp=sharing
1. 문제 영역을 실행할 수 있는 방법
yml파일을 설정 후 ./h2.sh로 데이터 베이스에 접속하여 아래에 공유해주신 방법으로 디비를 켭니다. 그리고 메인 클래스에서 실행을 하면 문제가 발생합니다.
2. 문제가 어떻게 나타나는지에 대한 상세한 설명
간단히 에러 스크린샷을 첨부하겠습니다.
혹시 관련이 있나해서 추가적으로 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술강의에서 h2 설치하여 사용한적이 있습니다.
그래서 c/Users/dongw 위치에 test.mv.db가 있고
home/dong 에는 jpashop.mv.db가 있는 상황입니다.
권한풀었는데 일단 다시 권한 재설정 해보았습니다.
https://drive.google.com/file/d/1XZLZisel5v0UnXx7BoYibunK09-0Pma5/view?usp=drive_link
강의대로 설정하여 진행하면 아래와같이 에러가 뜹니다.
참고로 h2데이터 베이스는 켜놓은 상태입니다.
먼저 설정파일은 이렇구요
에러내용은 아래와 같습니다. 에러 내용전부를 첨부하지 못하여 일부 발췌하여 남깁니다.
org.h2.jdbc.JdbcSQLNonTransientConnectionException: Connection is broken: "java.net.ConnectException: Connection refused: no further information: localhost" [90067-224]
......
Caused by: java.net.ConnectException: Connection refused: no further information
jpashop.mv.db파일위치는 아래와 같습니다.