Javaのエンティティを使用してテーブルを作成するためにサポート -春データは、設定ファイルがAbstractCassandraConfigurationとオーバーライド機能を拡張して、私はカサンドラのデータベースと接続するために、春データカサンドラを使用しています
@Override
public SchemaAction getSchemaAction() {
return SchemaAction.RECREATE_DROP_UNUSED;
}
@Override
public String[] getEntityBasePackages() {
return new String[] {"com.example"};
}
私の目的は、カサンドラにテーブルを自動的に作成することです@Tableアノテーションを使用してcom.exampleパッケージ内の前述のエンティティから取得します。例えば - このエンティティの
package com.example;
import org.springframework.data.cassandra.mapping.PrimaryKey;
import org.springframework.data.cassandra.mapping.Table;
@Table(value="goal")
public class Goal {
@PrimaryKey
private int id;
private String description;
public Goal(int id, String description) {
this.id = id;
this.description = description;
}
public Goal() {
}
public int getId() {
return id;
}
public String getDescription() {
return description;
}
public void setId(int id) {
this.id = id;
}
public void setDescription(String description) {
this.description = description;
}
@Override
public String toString() {
return "Goals [id=" + id + ", description=" + description + "]";
}
}
、与えられた構成では、一つのテーブルには、春の初期化時に作成されるはずです、しかし、それはそうしませんでした。 例外はありませんが、カッサンドラには何も作成されません。 ご協力いただければ幸いです。ありがとう。
Spring Bootを使用している場合、これはまだ動作しません。この問題のチケット(https://github.com/spring-projects/spring-boot/issues/4886)が公開されています。あなたの投票を投げたいかもしれません。 – mp911de
注意深く、一般的にアプリケーションを自動的に*あなたにスキーマを生成させるのは悪い考えです。スキーマとデータモデルはCassandraでのアプリの成功にとって非常に重要ですので、自分で気をつけてください。 – doanduyhai
こんにちは@ mp911de、コメントありがとうございます。しかし、私は** SchemaAction **プロパティの変更はうまくいくと思います。私はすでに** BasicCassandraMappingContext **のBeanを作成していますので、理想的にはうまくいくはずです。 現在エンティティからテーブルを自動作成するための回避策はありますか? – Bhushan