2012年7月10日火曜日

cassandra-jdbc + iBatisでやっとCQLが動いた話

CassandraのJDBC driver(cassandra-jdbc)を使って、iBatisからCQLを叩く実装を試しています。
iBatisといっても独自Frameworkのコンポーネントなので、設定ファイルがカスタマイズされていて、そこに嵌ったのもあるのですが…嵌ったポイントを忘れないようにメモ書きしてみます。
  • setAutoCommit(false)を呼び出すと、Exceptionになる。
    • Cassandraは常にauto-commitなので、falseを設定するとExceptionが発生します。iBatisのJDBC TransactionManagerは必ずsetAutoCommit(false)を呼び出すコーディングになっている為、TransactionManagerにEXTERNALを指定し、SetAutoCommitAllowedプロパティをfalseに設定する必要があります。
  • SELECT * FROM ~ だとresultClassとMappingできない。
    • これはcassandra-jdbc固有の症状かどうかわかりませんが、keyとcolumn nameを指定してSELECTすることで解決しました。
とりあえず、最初のsetAutoCommitで久しぶりにどっぷり嵌ってしまって、1日くらい時間を費やしちゃいましたが、なんとかデータを取るところまではできたのでOKです。ただ、resultのmappingがまだよくわかっていないので、もう少し調べてみないと…。
そしてcassandra-jdbcのドキュメントがどこにも見つから無いです。sourceを読めって事か?

0 件のコメント:

コメントを投稿