허용되는 해결책을 찾았습니다. 아래를보십시오.@Bean 메소드에서 스프링 부트를 사용하여 프로그래밍 방식으로 Kundera를 올바르게 구성하는 방법은 무엇입니까?
HBase에 내 JPA 개체를 저장하는 지속성 공급자로 Kundera를 사용하고 싶습니다. 주석 중심 방식으로 모든 작업을 수행합니다. 즉, persistence.xml이없고 필요하지 않습니다.
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
final LocalContainerEntityManagerFactoryBean bean = new LocalContainerEntityManagerFactoryBean();
bean.setPersistenceProviderClass(KunderaPersistence.class);
final Properties props = new Properties();
props.setProperty("kundera.dialect", "hbase");
props.setProperty("kundera.client.lookup.class",
HBaseClientFactory.class.getName());
props.setProperty("kundera.cache.provider.class",
EhCacheProvider.class.getName());
props.setProperty("kundera.cache.config.resource",
"/ehcache.xml");
props.setProperty("kundera.ddl.auto.prepare", "update");
props.setProperty("kundera.nodes", "myhbase.example.com");
props.setProperty("kundera.port", "2182");
props.setProperty("kundera.keyspace", "foo");
bean.setJpaProperties(props);
return bean;
}
내 src/main/resources
에 기본 comfiguration과 ehcache.xml
이 있습니다
지금까지 나는 다음과 같은했다. 내가 이것을 실행하려고하면
은, 그것은 밖으로 보석금, 스택 추적이 귀결은 : 나는 bean.setPersistenceUnitName("foo");
를 통해 퍼시스턴스 유닛 이름을 설정
... many more ...
Caused by: java.lang.IllegalStateException: No persistence units parsed from {classpath*:META-INF/persistence.xml}
at org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager.obtainDefaultPersistenceUnitInfo(DefaultPersistenceUnitManager.java:655)
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.determinePersistenceUnitInfo(LocalContainerEntityManagerFactoryBean.java:358)
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:307)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:318)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1613)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1550)
... 152 more
내가 얻을 : No persistence unit with name 'foo' found
내가 뭐하는 거지 wrong, 실제로 persistence.xml이 필요합니까? 명령 줄 스위치를 통해 구성을 설정할 수 있기를 원하기 때문에 원하지 않습니다. 이것들은 Environment
에 삽입되고, 내 @Bean
메쏘드의 매개 변수로 사용할 수 있고, 내 속성 객체에 이런 식으로 넣을 수 있습니다.
--- 편집 ---
는 이제 기본 설정으로 persistence.xml
을 생성하고, 그냥 내 Properties
오브젝트에서 사용자 정의 것들보다 우선합니다. 이 작동하지만 지금은 HBase에 연결하는 또 다른 문제가 Java 프로세스를 잠급니다. 또 다른 질문은 다음과 같습니다. 내 원래의 편집에 명시된 바와 같이
https://github.com/impetus-opensource/Kundera/wiki/Using-Kundera-with-Spring. 이것은 봄과 함께 Kundera 사용에 관한 wiki 페이지입니다. –
이 페이지를 알고 있지만 XML 구성을 사용합니다. 나는 프로그래밍으로 모든 것을 다한다. 하지만 persistence.xml을 만들고 프로그래밍 방식으로 일부 매개 변수를 재정의하는 위의 접근 방식이 효과적입니다. – rabejens
Kundera를 사용하려면 persistence.xml 파일을 만들어야합니다. 앱이 Kundera를 통해 HBase에 연결을 시도하는 동안 생성되는 일부 로그를 공유 할 수 있습니까? –