>  기사  >  Java  >  MySQL과 통합할 때 Hibernate 5에서 \"MappingException: Unknown Entity\"를 수정하는 방법은 무엇입니까?

MySQL과 통합할 때 Hibernate 5에서 \"MappingException: Unknown Entity\"를 수정하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-31 02:50:31641검색

How to Fix

Hibernate 5: MappingException: Unknown Entity

Hibernate 5에서 org.hibernate.MappingException: Unknown 엔터티 오류는 다음을 시도할 때 발생할 수 있습니다. MySQL과 통합합니다. 이 문제는 Hibernate 버전 5.0.0 및 5.0.1에만 해당되며 후속 버전에서 해결되었습니다.

原因

이 오류는 Hibernate 5의 변경으로 인해 발생합니다. 행동. 이전 버전에서는 ServiceRegistry를 구축한 후에도 구성 정보가 구성 내에 유지되었습니다. 그러나 Hibernate 5에서는 Configuration.buildSessionFactory(sr)가 호출될 때 Configuration이 이 정보를 잃습니다.

修复

1. 표준 구성 파일:

표준 hibernate.cfg.xml 및 hibernate.properties 파일을 사용하는 경우 세션 팩토리를 직접 생성합니다:

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

2. 속성 로드:

속성이 다른 파일에 저장된 경우 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>

3. Fluent Hibernate 유틸리티 사용:

이 접근 방식을 사용하는 전체 예를 보려면 GitHub의 fluent-hibernate-mysql 프로젝트를 참조하세요.

4. 잘못된 Hibernate 5 튜토리얼 권장 사항 방지:

Hibernate 5 튜토리얼에 제공된 잘못된 코드 조각:

<code class="java">return new Configuration().configure().buildSessionFactory(
                new StandardServiceRegistryBuilder().build() );</code>

올바른 구성을 수행하지 않으므로 피해야 합니다.

위 내용은 MySQL과 통합할 때 Hibernate 5에서 \"MappingException: Unknown Entity\"를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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