0

timeuuid 値を使用して準備済みステートメントを実行しようとすると、「無効な値の型」の例外が発生します。

コードは次のとおりです。

$builder = \Cassandra::cluster();
$cluster = $builder->withContactPoints('127.0.0.1')
            ->build();

$session = $cluster->connect();
$preparedStatement = $session->prepare("SELECT * FROM test.timeuuid_test WHERE account_id = :accId and item_time_uid >= minTimeuuid(:minTime);");
$options = new ExecutionOptions([
            'arguments' => [
                'accId' => 1234,
                'minTime' => new \Cassandra\Timeuuid(1458118516)
            ]
        ]);
$session->execute($preparedStatement, $options);

次の例外が発生します。

「Cassandra\Exception\InvalidArgumentException : 値の型が無効です」

テーブルスキームは次のとおりです。

CREATE KEYSPACE test WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1 };

CREATE TABLE test.timeuuid_test (
  account_id int,
  item_time_uid timeuuid,
  PRIMARY KEY ((account_id), item_time_uid)
) WITH CLUSTERING ORDER BY (item_time_uid DESC);

私は何を間違っていますか?

PECL cassandra 1.1.0 と cassandra 2.0.15 を使用しています。

インストールされた cassandra 関連パッケージ: cassandra20-2.0.15-1.noarch cassandra-cpp-driver-2.2.2-1.el6.x86_64 cassandra-cpp-driver-devel-2.2.2-1.el6.x86_64

4

1 に答える 1

2

間違った型を にバインドしていますminTime:ではなく引数をminTimeUuid取ります。timestamptimeuuid

于 2016-03-16T14:28:42.200 に答える