2016-05-26 2 views
0

ジョブの過程でテーブルにログ記録を書き込もうとしています。残念ながら、表が(JDBCクライアントを使用してテーブルを照会することによって確認された)が存在し、クンデラは、それが存在すると信じていないという事実に、投げたにもかかわらず:ColumnFamilyが存在するにもかかわらず、Kundera Unconfigured ColumnFamilyがあります。

com.impetus.kundera.configure.schema.SchemaGenerationException: 
InvalidRequestException(why:unconfigured columnfamily ingestionBatchSummary) 

これは私のpersistence.xmlです:

<persistence-unit name="cassandra_pu"> 
    <provider>com.impetus.kundera.KunderaPersistence</provider> 
    <properties> 
     <property name="kundera.client.lookup.class" 
      value="com.impetus.kundera.client.cassandra.dsdriver.DSClientFactory" /> 
     <property name="kundera.ddl.auto.prepare" value="validate" /> 
    </properties> 
</persistence-unit> 

kundera.nodes=127.0.0.1 
kundera.port=9042 
kundera.keyspace=migration 
kundera.username=notsecret 
kundera.password=supersecret 
:プロパティは、私は私がのEntityManager(ApplicationConfiguration.getPropertiesでロードを())を作成してからロードしていますファイルと一緒に

私は鍵空間と、テーブルは、私がいることが確認されましたが、それらを照会することで存在していることを確認しました

EntityManagerFactory emfactory = Persistence.createEntityManagerFactory("cassandra_pu", 
        ApplicationConfiguration.getProperties()); 

そして、私のエンティティ:

@Entity 
@Table(name="ingestionBatchSummary") 
public class BatchSummary { 
    @Id 
    @Column(name="batchUuid") 
    private UUID batchUUID; //UUID of Batch 

    @Column(name="stuff") 
    private String stuff; //log contents 

    //Getters, setters 
} 

そして、私のエラーをスローします魔法のラインプロパティがサーバーと一致するので、プロパティが正しくロードされていることを確認しました(正常な接続とキースペースがログに表示されます)。 Kunderaがこのテーブルの存在を認識できない他の理由はありますか?

答えて

1

CREATE TABLE "IngestionBatchSummary"の代わりにCREATE TABLE IngestionBatchSummaryで表が作成されました。その結果、テーブルはすべて小文字の名前で存在していました。 JDBCクエリーにも引用符が含まれていなかったので、私はこの事実を見逃していましたが、明らかにKunderaのクエリーは行います。

関連する問題