【发布时间】:2017-01-24 07:09:15
【问题描述】:
我是 cassandra 的新手,正在尝试将使用 Kundera 3.5 的 cassandra 与我在 play framework(v2.3) 上的 java 应用程序集成。我已经浏览了this 文档。但我收到了这个错误。
[CompletionException: com.impetus.kundera.loader.MetamodelLoaderException: Error while retreiving and storing entity metadata]
我在我的数据库中创建了必要的架构和列族。还有我的实体的罐子。谁能告诉我我错过了什么?
我的persistence.xml
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="cassandra_pu">
<provider>com.impetus.kundera.KunderaPersistence</provider>
<jar-file>entities.jar</jar-file>
<class>models.User</class>
<properties>
<property name="kundera.nodes" value="127.0.0.1"/>
<property name="kundera.port" value="9042"/>
<property name="kundera.keyspace" value="KunderaExamples"/>
<property name="kundera.dialect" value="cassandra"/>
<property name="kundera.client.lookup.class" value="com.impetus.client.cassandra.thrift.ThriftClientFactory" />
<property name="kundera.cache.provider.class" value="com.impetus.kundera.cache.ehcache.EhCacheProvider"/>
<property name="kundera.cache.config.resource" value="/ehcache-test.xml"/>
</properties>
</persistence-unit>
</persistence>
我的模型类 User.java
package models;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "users", schema = "KunderaExamples@cassandra_pu")
public class User
{
@Id
private String userId;
@Column(name="first_name")
private String firstName;
@Column(name="last_name")
private String lastName;
@Column(name="city")
private String city;
public void setUserId(String userId) {
this.userId = userId;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public void setCity(String city) {
this.city = city;
}
public String getUserId() {
return userId;
}
public String getCity() {
return city;
}
public String getLastName() {
return lastName;
}
public String getFirstName() {
return firstName;
}
}
【问题讨论】:
-
你在
entities.jar里放什么? -
还要确保
entities.jar中没有User实体。 -
@devツ 将所有模型(现在只有用户模型)放在 target/scala/classes/models 目录下。
标签: java cassandra playframework-2.0 kundera