728x90
반응형

김영한 강사님의 인프런 강의를 들으면서

Jpa 테스트 코드 작성 후 돌리는 중 에러 발생!

 

 

에러 내용 :

antlr.NoViableAltException: unexpected token: Member

...

java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: Member near line 1, column 15 [select m from Member m where m.name = :name]

...

 

 

 

해결 :

1. Member 파일 내에 @Entity 애노테이션 추가

2. 변수 id 위에 2개 애노테이션 추가

@Id

@GeneratedValue(strategy = GenerationType.IDENTITY)

 

 

테스트 코드를 다시 실행해보니 바로 정상적으로 작동된다.

 

728x90
반응형
728x90
반응형

JDBC 연결 설정 후 테스트 코드 작성 및 실행중 에러가 발생했다.

"Connection is closed"

 

 

에러 내용 :

java.lang.IllegalStateException: java.sql.SQLException: Connection is closed

at co m.hello.hellospring.repository.JdbcMemberRepository.save(JdbcMemberRepository.java:47) 
at co m.hello.hellospring.service.MemberService.join(MemberService.java:24) 
at com.hello.hellospring.service.MemberServiceIntegrationTest.회원가입(MemberServiceIntegrationTest.java:28)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)

 

 

 

해결 :

JDBC 연동관련 repository 소스에서

close() 함수 내부의 기존 conn.close()close(conn)으로 변경해주니 바로 해결되었다.

 

JdbcMemberRepository.java

 

 

오늘도 에러 해결 완료! (오 에 해 완!)

728x90
반응형
728x90
반응형

Test가 정상 통과로 작동해야 하는데 에러가 발생했다.

데이터베이스 커넥션 오류 발생!

 

에러 내용 :

org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-200]....

 

해결 :

application.properties 파일에 코드 한 줄 추가로 해결 완료!

 

application.properties

 

 

 

스프링부트 2.4부터는 아래 코드가 없을 경우

...Wrong user name or password... 에러가 발생한다고 한다.

spring.datasource.username=sa

 

 

 

728x90
반응형
728x90
반응형

인프런 강의를 들으며 JDBC 연결 관련 test 코드를 세팅하다가

@Transactional 애노테이션 import가 안되는 에러 발생!

사용 DB : H2 Database

 

 

 

해결 방법

build.gradle파일 내부 의존성 코드 두 줄을 추가하였다.

implementation("org.springframework.boot:spring-boot-starter-jdbc")
runtimeOnly("com.h2database:h2")

 

의존성 코드를 추가하고 난 뒤에 Gradle refresh를 해주기 위해

오른쪽 부분에 떠있는 작은 돌고래 모양의 버튼 클릭

(Road Gradle Changes 단축키:Ctrl + Shift + O)

또는 Gradle 창에서 Reload 해주면 수정사항이 반영되어

에러났던 코드로 돌아가 다시 import 시도하니 정상적으로 됨.

728x90
반응형

+ Recent posts