2016-09-16 52 views
0

我是新的cassandra,試圖集成cassandra使用Kundera 3.5與我的Java應用程序在播放框架(第2版。 3)。我已經通過this文檔。但我得到這個錯誤。「[CompletionException:com.impetus.kundera.loader.MetamodelLoaderException:錯誤,同時retreiving和存儲實體元數據]」

[CompletionException: com.impetus.kundera.loader.MetamodelLoaderException: Error while retreiving and storing entity metadata] 

我在我的數據庫中創建了必要的模式和列族。還有我的實體jar。可以alyone告訴我什麼,我錯過了thnig

我的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 = "[email protected]_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; 
    } 

} 
+0

你這是在'entities.jar'投入? –

+0

還要確保'entities.jar'中沒有'User'實體。 –

+0

@devツ在目標/ scala/classes/models目錄下放置所有模型(現在只有用戶模型)。 –

回答

0

該錯誤可能是由於User實體的兩倍聲明<class>標記和<jar-file>標記。

試試這個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> 
<class>models.User</class> 
<exclude-unlisted-classes>true</exclude-unlisted-classes> 
<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" /> 
</properties> 
</persistence-unit> 
</persistence> 
相關問題