我必须使用 Lift 的 Mapper(我知道 Scala 可能有更好的 ORM,但这不是我现在有权改变的东西)。通常,使用 Mapper,表是这样定义的:
package com.sample.model
import net.liftweb.mapper._
class Table extends LongKeyedMapper[Table] with IdPK {
def getSingleton = Table
object other_table_id extends MappedLongForeignKey(this, OtherTable)
object date_field extends MappedDate(this)
object string_field extends MappedString(this, 255)
def toCaseClass = ...
}
object Table extends Table with LongKeyedMetaMapper[Table]
现在我想为 Table 定义一个案例类以更轻松地操作记录,因为 Mapper 不是很“Scala-惯用”,不是很安全,而且绝对不是不可变的。我的案例类看起来像这样:
case class TableCC(id: Long, otherTableId: Long, dateField: Option[Date], ...) {
def toMapper = ...
}
我应该如何命名案例类,我应该把它放在哪里?
- 在具有不同名称(TableCC 或 TableCaseClass)的 com.sample.model 中?
- 在具有相同名称(表)的不同包(例如 com.sample.model.caseclass)中?
- 在表对象中?
- ...?