>  기사  >  Java  >  Hibernate 5: \"org.hibernate.MappingException: Unknown Entity\" 오류가 발생하는 이유는 무엇이며 어떻게 해결합니까?

Hibernate 5: \"org.hibernate.MappingException: Unknown Entity\" 오류가 발생하는 이유는 무엇이며 어떻게 해결합니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-28 16:21:02143검색

  Hibernate 5: Why am I Getting the

Hibernate 5: "org.hibernate.MappingException: 알 수 없는 엔터티" 오류 해결

문제:

Hibernate 5.0을 MySQL과 통합하려고 시도하는 동안 "org.hibernate.MappingException: 알 수 없는 엔터티" 오류가 발생했습니다. 이 오류는 Hibernate 버전 5.0.0 및 5.0.1에서는 발생하지만 Hibernate 4.3.9에서는 발생하지 않습니다.

원인:

이 문제는 SessionFactory가 Hibernate 5에서 생성되는 방식. 이전 버전의 Hibernate에서처럼 Configuration().buildSessionFactory(sr) 메소드를 사용하는 것은 매핑 정보를 버리기 때문에 더 이상 작동하지 않습니다.

해결책:

이 오류를 해결하려면 두 가지 접근 방식이 있습니다.

1. 단순화된 구성:

hibernate.cfg.xml 및 hibernate.properties와 같은 표준 구성 파일의 경우 ServiceRegistry를 사용하지 않고 SessionFactory를 생성할 수 있습니다:

<code class="java">SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();</code>

2. 속성 로드를 위해 StandardServiceRegistryBuilder 사용:

hibernate.properties 이외의 파일에 속성이 있는 경우 StandardServiceRegistryBuilder를 사용하여 해당 속성을 로드할 수 있습니다.

속성을 리소스로 로드:

<code class="java">ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().
    configure().loadProperties("hibernate-h2.properties").build();
SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);</code>

파일 시스템 경로에서 속성 로드:

<code class="java">File propertiesPath = new File("some_path");
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().
    configure().loadProperties(propertiesPath).build();
SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);</code>

추가 참고 사항:

  • Hibernate 5 튜토리얼에는 SessionFactory를 생성하는 잘못된 접근 방식이 포함되어 있습니다. 이는 Hibernate를 적절하게 구성하지 않는 new Configuration().configure().buildSessionFactory(new StandardServiceRegistryBuilder().build()) 메서드를 보여줍니다.
  • 이 문제는 Hibernate 버전 5.0.0 및 5.0.1에 영향을 미칩니다. . Hibernate 5.1 이상의 경우 원래 구성 방법 Configuration().buildSessionFactory(sr)이 예상대로 작동합니다.

위 내용은 Hibernate 5: \"org.hibernate.MappingException: Unknown Entity\" 오류가 발생하는 이유는 무엇이며 어떻게 해결합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.