とりあえず、試して出てきた結果を書き残す
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を考えなければ、今はまだ使わない方が良いのかもしれない..
もうちょっと要調査としよう