我正在尋找Spring + Hibernate + Cassandra示例項目。 沒有什麼好處嗎?如何使用Spring + Hibernate + Cassandra組合運行
儘管我試圖尋找和嘗試,但我嘗試了各種方法,但都失敗了。
作爲一種方式感興趣的是Hibernate OGM。
所以我先做了Spring + Hibernate + MySQL環境(它工作正常) 我決定修改它。
來源如下。
https://github.com/hidetarou2013/SpringDataBaseSample
- 功能/ MySQL的:正常運行證實
- 功能/ cassandra_1:我在掙扎。它不好用。
發展環境
- IDE:昴-E4.5
- JRE:JavaSE的-1.8
- 的Tomcat:8.0.26
- org.springframework版本:4.0.3。 RELEASE
- hibernate.version:4.3.6.Final
- 卡桑德拉:version3.9
最不清楚的地方在於spring.xml的「Hibernate 4 Session Factory Bean」。
設置如下。
<!-- Hibernate 4 SessionFactory Bean definition -->
<bean id="hibernate4AnnotatedSessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="annotatedClasses">
<list>
<value>jp.ken.databasesample.entity.Employees</value>
<value>jp.ken.databasesample.entity.Departments</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<!--
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.dialect">org.hibernate.dialect.Dialect</prop>
-->
<!-- -->
<prop key="hibernate.dialect">org.hibernate.ogm.dialect.cassandra.CassandraCQL2Dialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.ogm.datastore.provider">org.hibernate.ogm.datastore.cassandra.impl.CassandraDatastoreProvider</prop>
<prop key="hibernate.ogm.datastore.host">localhost</prop>
<prop key="hibernate.ogm.datastore.port">9042</prop>
<prop key="hibernate.ogm.datastore.database">spring_database</prop>
<prop key="hibernate.search.lucene_version">LUCENE_CURRENT</prop>
<prop key="hibernate.ogm.cassandra.url">jdbc:cassandra://localhost:9160</prop>
<prop key="hibernate.ogm.cassandra.default_keyspace">spring_database</prop>
<prop key="hibernate.ogm.cassandra.autogenerate">update</prop>
<!-- -->
</props>
</property>
</bean>
「hibernate4AnnotatedSessionFactory」, 「hibernate.dialect」, 「hibernate.ogm.datastore.provider」 這些設置是否正確?
我想諮詢Hivernate和Cassandra的專家。
當前顯示的錯誤日誌如下。
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'departmentsListController' defined in file [C:\pleiades\pleiades-e4.5\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\SpringDataBaseSample\WEB-INF\classes\com\example\springdatabasesample\controller\DepartmentsListController.class]: Instantiation of bean failed; nested exception is java.lang.ExceptionInInitializerError
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1076)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hibernate4AnnotatedSessionFactory' defined in class path resource [spring.xml]: Invocation of init method failed; nested exception is org.hibernate.boot.registry.selector.spi.StrategySelectionException: Unable to resolve name [org.hibernate.ogm.dialect.cassandra.CassandraCQL2Dialect] as strategy [org.hibernate.dialect.Dialect]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1553)
Caused by: org.hibernate.boot.registry.selector.spi.StrategySelectionException: Unable to resolve name [org.hibernate.ogm.dialect.cassandra.CassandraCQL2Dialect] as strategy [org.hibernate.dialect.Dialect]
at org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.selectStrategyImplementor(StrategySelectorImpl.java:128)
at org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.resolveDefaultableStrategy(StrategySelectorImpl.java:155)
謝謝。
這是你的類路徑org.hibernate.ogm.dialect.cassandra.CassandraCQL2Dialect?你錯過了一個JAR嗎? – gumenimeda
Gumenimeda,謝謝你的評論。 我的項目的pom.xml具有以下設置。 https://github.com/hidetarou2013/SpringDataBaseSample/blob/feature/cassandra_1/pom.xml 在休眠-OGM-卡桑德拉-4.2.0.Final.jar, org.hibernate.ogm.datastore .cassandra.CassandraDialect 還有就是, org.hibernate.ogm.dialect.cassandra.CandandraCQL 2方言 有沒有。 順便說一句,有在hibernate-ogm-core-4.2.0.Final 沒有CassandraCQL2Dialect我們相信依賴性關係設置是不夠的...... 但它是什麼?.... –
我指的是以下信息,但我沒有關於「hibernate.dialect」的信息。 順便說一句,休眠,OGM,Cassandra是由artifactId的設置。 [LINK](http://docs.jboss.org/hibernate/ogm/4.2/reference/en-US/html/ch14.html#cassandra_specific_configuration_properties) –