2017-05-24 9 views
0

Hibernate OGM의 모든 문서에서 Spring의 Java @Configuration을 사용한 설정 예제를 본 적이 없다. 문서 및 예제 프로젝트의 모든 예제는 persistence.xml을 사용하여 지속성 구성 단위를 구성합니다.Hibernate OGM Persistence 설정을 위해 persistence.xml 대신 Java Configuration을 사용할 수 있습니까?

Java config를 사용하여 Hibernate OGM Persistence 설정을 수행 할 수없는 이유 또는 제한이 있습니까? 나는이 튜토리얼에 감사를 달성

<!-- Use the Hibernate OGM provider: configuration will be transparent --> 
    <provider>org.hibernate.ogm.jpa.HibernateOgmPersistence</provider> 
    <properties> 
     <!-- Here you will pick which NoSQL technology to use, and configure it; 
      in this example we start a local in-memory redis_experimental node. --> 
     <property name="hibernate.ogm.datastore.provider" value="redis_experimental"/> 
     <property name="hibernate.ogm.datastore.host" value="127.0.0.1:6379"/> 
     <property name="hibernate.cache.use_second_level_cache" value="true"/> 
     <property name="hibernate.cache.region.factory_class" value="org.hibernate.cache.redis.hibernate5.SingletonRedisRegionFactory"/> 
     <property name="hibernate.cache.region_prefix" value="hibernate"/> 
     <property name="hibernate.cache.use_query_cache" value="true"/> 
     <property name="hibernate.cache.provider_configuration_file_resource_path" value="hibernate-redis.properties"/> 

    </properties> 
</persistence-unit> 
+0

Spring의'@ Configuration' 주석을 의미합니까? –

+0

사실, 그냥 자바 구성 호출하는 데 익숙해. 그 점을 지적 해 주셔서 감사합니다 – user4973

+0

OGM이 아닌 지속성 단위를 구성하는 것과 별반 다를 것이 없습니다. https://stackoverflow.com/questions/1989672/create-jpa-entitymanager-without-persistence-xml-configuration-file을 참조하십시오. – crizzis

답변

0

http://allandequeiroz.io/2017/02/05/creating-jpa-entity-manager-programmatically-with-hibernate-and-cdi/

지금 내 설정은 다음과 같습니다

이상적으로는 자바 설정에 아래의 persistence.xml을 변환하고 싶습니다 이

persistence.xml (최소 구성으로는 여전히 필요)

<persistence 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_1.xsd" 
      version="2.1"> 
    <persistence-unit name="ogm-jpa"> 
    </persistence-unit> 
</persistence> 

봄의 Java 구성

@Bean 
public Properties hibernateProperties(){ 
    final Properties properties = new Properties(); 

    properties.put("javax.persistence.provider", "org.hibernate.ogm.jpa.HibernateOgmPersistence"); 
    properties.put("javax.persistence.transactionType", "RESOURCE_LOCAL"); 

    properties.put("hibernate.ogm.datastore.provider", "redis_experimental"); 
    properties.put("hibernate.ogm.datastore.host", "127.0.0.1:6379"); 
    properties.put("hibernate.cache.use_second_level_cache", "true"); 
    properties.put("hibernate.cache.region.factory_class", "org.hibernate.cache.redis.hibernate5.SingletonRedisRegionFactory"); 
    properties.put("hibernate.cache.region_prefix", "hibernate"); 
    properties.put("hibernate.cache.use_query_cache", "true"); 
    properties.put("hibernate.cache.provider_configuration_file_resource_path", "hibernate-redis.properties"); 

    return properties; 
} 

@Bean 
public EntityManager entityManager(Properties hibernateProperties){ 

    final EntityManagerFactory factory = Persistence.createEntityManagerFactory("ogm-jpa", hibernateProperties); 
    return factory.createEntityManager(); 

} 

그리고 방금 @Autowire EntityManager를 위해 entityManager;