mirage-scalaでのJavaBeanの定義方法

mirage-scalaでもMirage同様、SQLのパラメータや結果の取得にJavaBeanを使用します。たとえばこんな感じ。一応、@BeanPropertyアノテーションを付けなくても行けるようにしてありますが、varだったりnullで初期化する必要があったりと、ちょっとJavaっぽいかも。

class Book {
  var bookId: java.lang.Integer = null
  var bookName: String = null
  var author: String = null
  var price: java.lang.Integer = null
}

プロパティの値はコンストラクタで受け取るようにすることもできます。こうすることでフィールドをvalにしたり、caseクラスにすることができます。こっちのほうがScalaっぽいですかね。

class Book (
  val bookId: java.lang.Integer,
  val bookName: String,
  val author: String,
  val price: java.lang.Integer)

ちなみにMirageではJavaBeanの代わりにjava.util.Mapを使用することができますが、mirage-scalaではこれに加えてScalaのMapを使用できるようになっています。