0

CassandraAdminOperations.createTable を使用して UUID タイプ フィールドを持つテーブルを作成するときに問題が発生します。タイプuuidでテーブルにフィールドを定義しましたが、CassandraAdminOperations.createTableを使用してテーブルを作成すると、フィールドはtimeuuidとして作成されました。フィールドを timeuuid ではなく uuid にする方法はありますか?

クラスのフィールド定義は次のとおりです。

@PrimaryKeyColumn(name = "id", ordinal = 0, type = PrimaryKeyType.PARTITIONED)
private UUID id;

@Column(value = "url")
private String url;

ただし、CassandraAdminOperations.createTable を呼び出してテーブルを作成すると、ログに次のように表示され、id フィールドは timeuuid として作成されました。

00:43:23.877 [localhost-startStop-1] DEBUG osdccore.CassandraAdminTemplate - 存在しない場合はテーブルを作成します id_to_url_map (id timeuuid, URL テキスト, PRIMARY KEY (id));

ありがとう!

4

1 に答える 1

2

私も同じ問題を抱えていました。しかし、いくつかの調査の結果、@CassandraTypeアノテーションを追加して、クラスを明示的に指定できることがわかりました。

    import com.datastax.driver.core.DataType;

    @PrimaryKeyColumn(name = "id", ordinal = 0, type = PrimaryKeyType.PARTITIONED)
    @CassandraType(type = DataType.Name.UUID)
    private UUID id;
于 2016-03-29T06:12:34.937 に答える