scala – Slick 2.0在表中映射java.util.Date
发布时间:2020-12-16 18:22:37 所属栏目:安全 来源:网络整理
导读:我使用slick 2.0,我有一个简单的案例类: case class Message(id: Option[Long],userId: Option[Long],body:String,creationDate:Date) 以下映射: class Messages(tag: Tag) extends Table[Message](tag,"message") { import Mapping.Mapper._ def id = col
我使用slick 2.0,我有一个简单的案例类:
case class Message(id: Option[Long],userId: Option[Long],body:String,creationDate:Date) 以下映射: class Messages(tag: Tag) extends Table[Message](tag,"message") { import Mapping.Mapper._ def id = column[Long]("id",O.PrimaryKey,O.AutoInc) def userId = column[Long]("user_id") def body = column[String]("body") def creationDate = column[java.util.Date]("creationDate") def * = (id.?,userId.?,body,creationDate) <> (Message.tupled,Message.unapply _) } 我导入这个隐式映射器: implicit def date2sqlDate(d: java.util.Date): java.sql.Date = new java.sql.Date(d.getTime()) 我一直收到这个错误: No matching Shape found. Slick does not know how to map the given types. Possible causes: T in Table[T] does not match your * projection. Or you use an unsupported type in a Query (e.g. scala List). Required level: scala.slick.lifted.ShapeLevel.Flat Source type: (scala.slick.lifted.Column[Option[Long]],scala.slick.lifted.Column[Option[Long]],scala.slick.lifted.Column[String],scala.slick.lifted.Column[java.sql.Date]) Unpacked type: (Option[Long],Option[Long],String,java.util.Date) Packed type: Any 如何在表中使用java.util.Date? 看起来我们需要使用MappedColumnType 但像这样的简单映射不起作用 implicit val date2sqlDateMapper = JdbcDriver.MappedJdbcType.base[java.util.Date,java.sql.Date]( { d => date2sqlDate(d) },{ sqlDate => sqlDate } ) 我去拿 解决方法implicit val JavaUtilDateMapper = MappedColumnType .base[java.util.Date,java.sql.Timestamp] ( d => new java.sql.Timestamp(d.getTime),d => new java.util.Date(d.getTime)) 你需要在隐式作用域中有这样的东西.正如你所注意到的,java.util.Date被映射到java.sql.Timestamp,如果映射到java.sql.Date,它将失去时间部分 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何在AngularJs中执行jQuery动画,如淡入和淡出
- scala – 如何匹配Akka HTTP中的所有路径
- scala – 如何在Akka Cluster中测试订阅者的接收方法?
- AngularJS中内置过滤器问题?
- angularjs – (量角器e2e)出错“A Jasmine Spec超时:重置W
- 《数据结构》进行曲--带头结点的单循环链表的基本操作
- macos – 如何在Terminal.app中进行bash反向搜索,而不显示乱
- 在线框架引用|bootstrap|jq|jqmobile|CSS框架_无需整理
- 从Angular 2 http获取错误消息
- AngularJS ng-table无法设置null的属性’$data’