LoginSignup
1
1

More than 5 years have passed since last update.

kotlinでspring-data-cassandraを利用しようとしているので備忘録

Last updated at Posted at 2018-07-14

とりあえず、試して出てきた結果を書き残す

CassandraRepository

interfaceとして updateがない

  • 結局は、SpringData系って、RestもRedisも XXTemplateに依存する形で進められており、Cassandraも例にもれず CassandraTemplateに依存しているみたい
  • JpaRepositoryを読むと、save(T) 時は、entityの存在確認をして、persist/mergeを使い分けているが、CassandraRepository(正確にはSimpleCassandraRepositoryでは、save時はinsertしかしていない
  • CqlTemplateで賄ってよが当面なんだろうなー
  • Cassandraの使い方次第だろうけど、DELETE/INSERTで今は事足りているけどダメな場合は、CassandraTemplateを引っ張り出そう

@Query時に、JPAと同じような記載が出来ない

@Queryをkotlin で以下のように実装すると怒られる

query
@Repository
interface MasterDao : CassandraRepository<GenreMaster, String> {

 @Query("SELECT count(genreId) FROM t_genre x")
 fun countById(id: String): Integer

Caused by: com.datastax.driver.core.exceptions.SyntaxError: line 1:35 no viable alternative at input 'x' (SELECT count(genreId) FROM [t_genre] x)

こっちにすると大丈夫

query
@Repository
interface MasterDao : CassandraRepository<GenreMaster, String> {

 @Query("SELECT count(genreId) FROM t_genre")
 fun countById(id: String): Integer

所感

ReactiveCassandraRepositoryを今後使いたいので、試しているけど、それがなければ、Jpaだけで進めていきたいんだよなー
spring-data-jpa との相性もあまり良いようには見えないところで考えると面倒なので。
Reactiveを考えなければ、今はまだ使わない方が良いのかもしれない..

もうちょっと要調査としよう

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1