如何避免Slick的模型声明冗长和重复

键盘武士

我目前正在使用Slick 1.x在playframework 2.1.3中访问MySQL。尽管Slick的功能通常看起来不错,但我无法确定声明语法的重复性。我的意思是看看下面的代码:

case class User
 (id: Option[Long]
 , firstName: String
 , lastName: String
 , email: String
 , password: String
 , status: String
 , createDate: Long = Platform.currentTime
 , firstLogin: Option[Long]
 , lastLogin: Option[Long]
 , passwordChanged: Option[Long]
 , failedAttempts: Int = 0
  )

object User extends Table[User]("USER") {
  def id = column[Long]("id", O.PrimaryKey, O.AutoInc)
  def firstName = column[String]("firstName", O.NotNull)
  def lastName = column[String]("lastName", O.NotNull)
  def email = column[String]("mail", O.NotNull)
  def password = column[String]("password", O.NotNull)
  def status = column[String]("status", O.NotNull)
  def createDate = column[Long]("createDate", O.NotNull)
  def firstLogin = column[Long]("firstLogin", O.Nullable)
  def lastLogin = column[Long]("lastLogin", O.Nullable)
  def passwordChanged = column[Long]("passwordChanged", O.Nullable)
  def failedAttempts = column[Int]("failedAttempts", O.NotNull)

  def * = id.? ~ firstName ~ lastName ~ email ~ password ~ status ~ createDate ~ firstLogin.? ~ lastLogin.? ~ passwordChanged.? ~ failedAttempts <>(User.apply _, User.unapply _)
  def autoInc = * returning id
}

为了拥有一个简单的案例类和一个访问对象,我将不得不对每个字段声明三遍,这是不对的。有没有办法避免这种容易出错的重复性?

更新:当然,此问题的解决方案应支持读取和写入操作。

cvogt

您可以使用代码生成,也可以在将来使用:类型提供程序。

参见https://groups.google.com/d/msg/scalaquery/Pdp3GTXsKCo/O0e3JLXAaK8J

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何避免冗长的陈述

来自分类Dev

如何避免控制器和模型中的重复卫生?

来自分类Dev

如何避免在Django模型字段中重复?

来自分类Dev

如何避免在 react-slick 中重复轮播项目

来自分类Dev

如何避免制作冗长的构造函数

来自分类Dev

避免逗号表达式和重复的声明

来自分类Dev

在接口和类定义中避免字段声明重复

来自分类Dev

避免逗号表达式和重复的声明

来自分类Dev

如何避免在in节点的类声明中重复自己?

来自分类Dev

如何避免代码合同声明中的代码重复

来自分类Dev

如何避免在模块声明中重复类型定义?

来自分类Dev

MySQL 和 UNIQUE 列:如何避免重复?

来自分类Dev

声明地图时避免重复

来自分类Dev

如何避免在Rails中重复使用相同的模型

来自分类Dev

如何避免冗余且冗长的if-else结构?

来自分类Dev

如何通过在模型方法中使用 ValueError 避免模型管理器中的重复

来自分类Dev

如何避免代码重复?

来自分类Dev

如何避免重复碎片?

来自分类Dev

如何避免重复?

来自分类Dev

如何避免重复?

来自分类Dev

如何避免if / elseif重复?

来自分类Dev

如何避免标签重复?

来自分类Dev

如何避免重复输入

来自分类Dev

如何避免重复功能

来自分类Dev

如何避免列表重复

来自分类Dev

如何避免重复的 XAML?

来自分类Dev

如何避免重复值?

来自分类Dev

C ++避免重复声明的语法是什么?

来自分类Dev

如何避免在ModelForm和CreateView类中重复字段列表?