slick 2.0,如何将TableQuery地图变成seq并最终映射到表单?

时间:2014-04-03 05:33:19

标签: forms playframework-2.0 slick slick-2.0

我是playframework 2.0的新用户。 我想将用户对象映射到表单

我在光滑的1.0中理解:

val userForm = Form(
 mapping(
"name" -> text,
"age" -> number
)(UserData.apply)(UserData.unapply)
)

但在光滑的2.0中,用户是对象:

class User(tag: Tag) extends Table[(Int, String,String, String,Date,String,Option[Long], Int)](tag, "User") {
def id = column[Int]("SUP_ID", O.PrimaryKey, O.AutoInc)
def first_name = column[String]("First_Name")
def second_name=column[String]("Second_Name")
def email=column[String]("Email")
def datebirth=column[Date]("Birth_date")
def password=column[String]("Password")
def addID = column[Option[Long]]("ADRESS", O.Nullable)
def privilege=column[Int]("privilege")
def * = (id, first_name, second_name, email, datebirth, password, addID, privilege)
def home_address=foreignKey("ha_FK", addID, address)(_.id)
}
val user=TableQuery[User]

如何将对象更改为seq然后映射到Form?

表单如何绑定scala2.0中的数据?

任何人都可以为此提供任何示例吗?

1 个答案:

答案 0 :(得分:0)

它经常采用的方式是使用案例类来表示要插入数据库中的对象。然后,您可以轻松地为案例类创建表单映射。

一个例子就像是thais。

case class User(id: Option[Int] = None, name: String, age: Int)

class UserTable(tag: Tag) extends Table[User]("user") {
    def id = column[Int]("SUP_ID", O.PrimaryKey, O.AutoInc)
    def name = column[String]("Name")
    def age = column[Int]("Age")
}

val users = TableQuery[UserTable]

val userForm = Form(
    mapping(
        "id" -> ignored
        "name" -> text,
        "age" -> number
    )
)

我不确定你的意思"改为Seq然后映射到Form"但希望这是你正在寻找的答案。