Heestory

[IntelliJ]JPA 프로젝트 개발시 에러 본문

개발(0)/JPA

[IntelliJ]JPA 프로젝트 개발시 에러

까만밀가루 2023. 8. 18. 17:42

드디어 3일만에 스스로 인텔리제이 + Spring Boot + JPA 첫 run을 실행했다.

이 과정 중에 2일은 지인의 도움을 받았고, 3일차 스스로 진행했다.

퀵 스프링 부트 를 이용해 진행했으나, persistence.xml을 이용한 JPA는 8.15 하루종일 진행했으나 전혀 가능성이 보이지않았었고, application.yml을 이용한 JPA create가 되었다.(persistence.xml도 아마 비슷한 이유로 안된거같아 빠른 시일내에 진행예정)

일단 책 단계가 자바소스 코드로 진행하기 때문에, 내장톰캣 이용 X 

감격의 성공한 것

만난 에러들을 정리해본다.(추가 누적예정)


개발 환경

  • Srping Boot : 버전 3(3.1.2)
  • Java : 17(스프링 부트 버전 3은 자바 17써야 빌드가 된다)
  • Maven
  • DB : MySQL
  • Windows
  • 인텔리제이 추가 : devTools, Lombok, Spring Web, Spring Web Service, Spring Data jpa, MySQL

1.pom.xml → hibernate 설정

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource

아래가 인터넷에 많이 떠도는 hibernate 설정인데 나는 위와 같은 에러가 뜬다.

            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-entitymanager</artifactId>
                <version>5.4.13.Final</version>
            </dependency>
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-core</artifactId>
                <version>3.5.1-Final</version>
            </dependency>

아마 spring 버전이나 다른게 안 맞는거같은데, 그럴 때 위를 주석처리하고 아래 validator로 변경한다.

            <dependency>
                <groupId>org.hibernate.validator</groupId>
                <artifactId>hibernate-validator</artifactId>
                <version>8.0.0.Final</version>
            </dependency>
            <dependency>
                <groupId>org.hibernate.validator</groupId>
                <artifactId>hibernate-validator-annotation-processor</artifactId>
                <version>8.0.0.Final</version>
            </dependency>

 

 

2.javax에러 문제

스프링 부트 3버전부턴 javax가 아닌 jakarta를 쓴다고 한다.

떄문에 굳이 pom.xml에 아래를 추가하지 않아도 되었다.

		<dependency>
			<groupId>javax.xml.bind</groupId>
			<artifactId>jaxb-api</artifactId>
			<version>2.3.1</version>
		</dependency>

 

 

3.application.yml과 pom.xml 버전 맞춰야할때

org.hibernate.boot.registry.selector.spi.StrategySelectionException: Unable to resolve name [org.hibernate.dialect.MySQL5Dialect] as strategy [org.hibernate.dialect.Dialect]

이 에러는 검색해보면 url주소, show-sql설정, ddl-auto등을 쓰라고 하는데, 아래 스택플로우 참고하여 버전이 틀렸음을 확인하였다.

때문에 내 pom.xml에 맞는 버전으로 바꿔주니 제대로 JPA가 진행되었다.

https://stackoverflow.com/questions/55991050/how-fix-org-hibernate-boot-registry-selector-spi-strategyselectionexception-un

 

How fix "org.hibernate.boot.registry.selector.spi.StrategySelectionException: Unable to resolve name [org.hibernate.dialect.MySQ

I received an exception when starting the application: Caused by: org.hibernate.boot.registry.selector.spi.StrategySelectionException: Unable to resolve name [org.hibernate.dialect.MySQL8Dialect] as

stackoverflow.com