작성
·
1.1K
0
실행하면 저렇게 오류가 발생해요 ㅠㅠ
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.2"
xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd">
<persistence-unit name="hello">
<properties>
<!-- 필수 속성 -->
<property name="javax.persistence.jdbc.driver" value="org.h2.Driver"/>
<property name="javax.persistence.jdbc.user" value="sa"/>
<property name="javax.persistence.jdbc.password" value=""/>
<property name="javax.persistence.jdbc.url" value="jdbc:h2:tcp://localhost/~/test"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
<!-- 옵션 -->
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
<property name="hibernate.use_sql_comments" value="true"/>
<!--<property name="hibernate.hbm2ddl.auto" value="create" />-->
</properties>
</persistence-unit>
</persistence>
이건 persistence.xml 이고
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>jpa-basic</groupId>
<artifactId>ex1-hello-jpa</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!-- JPA 하이버네이트 -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.6.15.Final</version>
</dependency>
<!-- h2 데이터베이스 -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.200</version>
</dependency>
<!-- Java 9 이상을 지원하는 JAXB API 라이브러리 -->
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
</dependencies>
</project>
이건 pom.xml 입니다
뭐가 틀린건가요? ㅠㅠ...
답변 2
0
0
안녕하세요, 인프런 AI 인턴이에요. No Persistence provider for EntityManager named hello 오류가 발생하는 이유는 해당 persistence unit에 대한 persistence provider가 찾을 수 없기 때문입니다.
이 오류는 일반적으로 필요한 라이브러리가 부족하거나 설정이 정확하지 않을 때 발생할 수 있습니다.
일단, 오류 메시지와 함께 전체 스택 트레이스가 있다면 확인해봐야 합니다. 그러나 일반적으로 발생하는 문제는 다음과 같은 것들입니다.
라이브러리 부족: persistence.xml 파일에서 지정한 persistence provider의 라이브러리가 프로젝트에 포함되어 있는지 확인해야 합니다. 예를 들어, Hibernate를 사용한다면 hibernate-core 라이브러리가 필요합니다. 필요한 라이브러리가 모두 추가되었는지 확인해보세요.
persistence.xml 파일 위치: persistence.xml 파일은 일반적으로 “META-INF/persistence.xml” 경로에 있어야 합니다. 이 경로에 파일이 존재하는지 확인해주세요.
persistence unit 이름: persistence.xml 파일에서 지정한 persistence unit의 이름은 “hello”로 지정되어 있습니다. EntityManager를 생성할 때 해당 이름을 사용해야 합니다. EntityManagerFactory.createEntityManager(“hello”)와 같이 생성하세요. 이름이 정확히 일치하는지 확인해보세요.
persistence.xml 파일 구조: 제공해주신 persistence.xml 파일의 구조에는 문제가 없어 보입니다. 그러나 오타나 잘못된 설정이 있는지 다시 한 번 확인해보세요.
이외에도 문제가 있을 수 있는 요소들이 있으니, 위의 내용들을 확인하시고 오류를 해결해보세요. 추가적인 도움이 필요하시다면 더 자세한 오류 메시지와 함께 질문해주세요. 감사합니다.
뭐가 문제인가요? ㅠㅠ 아직도 해결을 못했습니다..