私はScalaとScalaQueryにまったく慣れておらず、数週間使用しています。関数を呼び出してクエリの条件を把握しようとしていますが、Tの代わりにNamedColumn [T]が表示されます。解凍するにはどうすればよいですか?
2番目のリンクの20行目を参照してください。
タイプマッパー付きのパッケージ:https ://gist.github.com/3469291
テーブルオブジェクト:https ://gist.github.com/3469291
case class MyObject (
id: Long,
created: JodaTime
modified: JodaTime
special: JodaTime
)
object MyObjects extends Table[MyObject]("my_objects") {
lazy val database = Database.forDataSource(DB.getDataSource())
def id = column[Long]("id", O PrimaryKey, O AutoInc, O NotNull)
def created = column[JodaTime]("created", O NotNull)
def modified = column[JodaTime]("modified", O NotNull)
def special = column[JodaTime]("special", O NotNull)
def * = id ~ created <> (MyObject, MyObject.unapply _)
def getMarker(time: JodaTime) = database.withSession { implicit db:Session =>
(for {
e <- MyObjects if (new org.joda.time.Interval(e.created, e.modified).contains(e.special)
} yield (e.id, e.created)).firstOption
}
}
e.created / modify / specialはNamedColumnsであるため、コンストラクターと関数呼び出しは機能しません。これを機能させるにはどうすればよいですか?
私は自分のオブジェクトをテストしませんでした。クラスを取得して、名前を削除して名前を変更しましたが、自分が持っていることとやりたいことを示すためだけです。
ありがとう。