Islands in the byte stream

Technical notes by a software engineer

Support Condition Query Helpers in Orma v0.9.0

gfx/Android-Orma · GitHub

condition query helpersってのは次のコードの titleEq() みたいなやつです。モデルに定義した @Column(indexed = true) なカラムについて、*Eq() *NotEq() *In(), *NotIn() などのヘルパーメソッド(中身は where() を呼び出すだけ) を生成する機能ですね。 インデクスされないカラムではヘルパーメソッドは生成しません。インデクスされないカラムをwhere句やorder by句で指定すべきでない、という思想からです。

// from README.md

orma.selectFromTodo()
  .titleEq("foo") // equivalent to `where("title = ?", "foo")`
  .observable()
  .subscribe(...);

orma.updateTodo()
  .titleEq("foo")
  .content("a new content")
  .execute();

orma.deleteFromTodo()
  .titleEq("foo")
  .execute();

Ormaではコード補完フレンドリーなインターフェイスを心がけています。 orma.selectFrom(Todo.class) ではなく orma.selectFromTodo() を、 orma.selectFromTodo().eq("title", "foo") ではなく orma.selectFromTodo().titleEq("foo") というインターフェイスを採用しているのはそういう理由からです。