강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

lgh8079님의 프로필 이미지
lgh8079

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

Hello JPA - 애플리케이션 개발

H2 Database 연결이 안됩니다.

작성

·

11

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="jakarta.persistence.jdbc.driver" value="org.h2.Driver"/>
            <property name="jakarta.persistence.jdbc.username" value="sa"/>
            <property name="jakarta.persistence.jdbc.password" value=""/>
            <property name="jakarta.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>
<?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>

    <dependencies>
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.3.0</version>
        </dependency>
        <!-- JPA 하이버네이트 -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>5.3.10.Final</version>
        </dependency>

        <!-- H2 데이터베이스 -->
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <version>1.4.199</version>
        </dependency>
    </dependencies>

</project>
package hellojpa;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class JpaMain {

    public static void main(String[] args) {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello");

        EntityManager em = emf.createEntityManager();

        em.close();

        emf.close();

    }
}
image.pngimage.png

H2 Database 연결이 안되어서 오류가 발생하는데 뭐가 문제인지 알려줄 수 있나요?

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

lgh8079님께서 H2 Database 연결 문제로 어려움을 겪고 계신 것 같습니다. 제공해주신 설정 파일과 오류 메시지를 기반으로 몇 가지 가능성 있는 해결 방법을 안내드리겠습니다.

  1. Database 파일 생성: 제공된 오류 메시지에 따르면 “Database not found”라는 메시지가 나타나고 있습니다. 이는 해당 경로(C:/Users/User/test)에 데이터베이스 파일이 없음을 의미합니다. 이 경우, H2 콘솔을 통해 데이터베이스를 먼저 생성해야 합니다. H2 Database는 기본적으로 파일을 생성해 주지만, TCP 모드에서는 연결하는 쪽에서 데이터베이스 파일을 미리 생성해준 상태여야 합니다.

  2. H2 데이터베이스 URL 확인: jdbc:h2:tcp://localhost/~/test URL은 H2 TCP 모드로 연결을 시도하고 있습니다. 해당 URL에 맞는 데이터베이스가 있는지 확인해주시기 바랍니다. 경우에 따라 로컬 파일로 데이터베이스를 사용하고자 하면 jdbc:h2:~/test와 같은 로컬 경로를 사용할 수도 있습니다. 경로를 정확히 확인 후, 파일이 존재해야 합니다.

  3. 버전 확인 및 호환성 문제: 사용 중인 H2 Database 버전(1.4.199)과 Hibernate의 호환성을 체크하는 것도 중요합니다. H2 Database의 새로운 버전이 나와 있다면, 업그레이드 후 다시 시도해 보시는 것도 방법입니다.

  4. Persistence 설정 확인: persistence.xml 파일에서 네임스페이스와 구성 요소가 올바르게 설정되어 있는지 다시 확인해 보세요. javax.persistence.jdbc.username 설정은 jakarta.persistence.jdbc.username와 같이 정확하게 설정되어야 합니다.

다음과 유사한 문제가 있는 다른 질문과 답변들을 통해 얻을 수 있는 자세한 정보들을 제공합니다:

이 외에도, 문제가 지속되면 새로운 데이터베이스 파일을 생성하거나, 다른 저장 경로를 지정하는 방법도 있음을 참고하시기 바랍니다.

저는 질문자님의 이해를 돕고자 지식 공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

lgh8079님의 프로필 이미지
lgh8079

작성한 질문수

질문하기