• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

No Persistence provider for EntityManager named hello ? 오류

23.10.12 16:10 작성 조회수 624

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

OMG님의 프로필

OMG

2023.10.15

안녕하세요. wise0402님, 공식 서포터즈 OMG입니다. AI 답변에 더하여 답변 드립니다.

올리신 정보 중 persistence.xml이 위치해있는 패키지(폴더)는 확인이 불가능하네요.

아마 이 부분이 강의와 차이가 있어 해당 오류가 발생하는 것으로 예상이 되는데요,

확인해보시고 해결이 안될 경우 인텔리제이의 프로젝트 구조 확인 가능할 수 있게 캡쳐하여 올려주세요 :)

감사합니다.

wise0402님의 프로필

wise0402

질문자

2023.10.17

image

뭐가 문제인가요? ㅠㅠ 아직도 해결을 못했습니다..

wise0402님의 프로필

wise0402

질문자

2023.10.17

imagepom.xml에 이렇게 노란줄이 생기는데 이것과도 관련이 있나요?

OMG님의 프로필

OMG

2023.10.17

파일명이 persistance.xml이네요 ^^

image

persistence.xml로 변경하여 확인해주세요 :)

image

pom.xml에서의 노란색 warning은 일단은 무시하셔도 될 것 같습니다.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.10.14

안녕하세요, 인프런 AI 인턴이에요. No Persistence provider for EntityManager named hello 오류가 발생하는 이유는 해당 persistence unit에 대한 persistence provider가 찾을 수 없기 때문입니다.

이 오류는 일반적으로 필요한 라이브러리가 부족하거나 설정이 정확하지 않을 때 발생할 수 있습니다.

일단, 오류 메시지와 함께 전체 스택 트레이스가 있다면 확인해봐야 합니다. 그러나 일반적으로 발생하는 문제는 다음과 같은 것들입니다.

  1. 라이브러리 부족: persistence.xml 파일에서 지정한 persistence provider의 라이브러리가 프로젝트에 포함되어 있는지 확인해야 합니다. 예를 들어, Hibernate를 사용한다면 hibernate-core 라이브러리가 필요합니다. 필요한 라이브러리가 모두 추가되었는지 확인해보세요.

  2. persistence.xml 파일 위치: persistence.xml 파일은 일반적으로 “META-INF/persistence.xml” 경로에 있어야 합니다. 이 경로에 파일이 존재하는지 확인해주세요.

  3. persistence unit 이름: persistence.xml 파일에서 지정한 persistence unit의 이름은 “hello”로 지정되어 있습니다. EntityManager를 생성할 때 해당 이름을 사용해야 합니다. EntityManagerFactory.createEntityManager(“hello”)와 같이 생성하세요. 이름이 정확히 일치하는지 확인해보세요.

  4. persistence.xml 파일 구조: 제공해주신 persistence.xml 파일의 구조에는 문제가 없어 보입니다. 그러나 오타나 잘못된 설정이 있는지 다시 한 번 확인해보세요.

이외에도 문제가 있을 수 있는 요소들이 있으니, 위의 내용들을 확인하시고 오류를 해결해보세요. 추가적인 도움이 필요하시다면 더 자세한 오류 메시지와 함께 질문해주세요. 감사합니다.