could not find implicit value for parameter extractor 问题的解决
来源:互联网 发布:莫扎特 知乎 编辑:程序博客网 时间:2024/05/21 19:27
最近在用playframework做一个web应用.
playframework是一个web框架,可以将html和scala或java很好的结合起来,用起来很方便,而且功能强大.
现在决定把过程中遇到的有意义问题记录下来,以便自己以后查询,也能给别人带来方便最好.
我是刚接触playframework,有些内容可能会有错误,希望有人能指出,一起讨论进步.
在用playframework的时候,如果要对数据库进行读取,可能会出现下面的编译错误:
could not find implicit value for parameter extractor: 后面跟着一个数据类型.
我的理解就是"这个数据类型数据库支持,数据是以这种类型存储在数据库中的,但是playframework不支持这种类型",于是在读取数据库的时候出现了这个问题.
解决办法如下:
(针对上图中的问题)
在scala实现数据库读取的样例类中加上这个方法.
implicit def rowToTimestamp: Column[Timestamp] = Column.nonNull { (value, meta) => val MetaDataItem(qualified, nullable, clazz) = meta value match { case d: Timestamp => Right(d) case _ => Left(TypeDoesNotMatch("Cannot convert " + value + ":" + value.asInstanceOf[AnyRef].getClass + " to Timestamp for column " + qualified)) } }我是这么解决的,内容是网上查资料加上自己的一点修改.
网上的资料是针对playframework不能提取float,uuid类型的问题的解决办法,办法是将上面的一段程序换为:
implicit def rowToFloat: Column[Float] = Column.nonNull { (value, meta) => val MetaDataItem(qualified, nullable, clazz) = meta value match { case d: Float => Right(d) case _ => Left(TypeDoesNotMatch("Cannot convert " + value + ":" + value.asInstanceOf[AnyRef].getClass + " to Float for column " + qualified)) }}
implicit def rowToUUID: Column[UUID] = { Column.nonNull[UUID] { (value, meta) => val u = UUID.fromString(value.toString) val MetaDataItem(qualified, nullable, clazz) = meta valueToUUIDOption(value) match { case Some(uuid) => Right(uuid) case _ => Left(TypeDoesNotMatch("Cannot convert " + value + ":" + value.asInstanceOf[AnyRef].getClass + " to UUID for column " + qualified)) } } }
参考资料:
http://stackoverflow.com/questions/11180429/anorm-parse-float-values
http://stackoverflow.com/questions/18838261/how-do-i-add-an-additional-implicit-extractor-in-play-2-1-4-and-actually-use-it
转载请注明出处:
http://blog.csdn.net/thewolf2?viewmode=list
- could not find implicit value for parameter extractor 问题的解决
- could not find implicit value for parameter param: org.apache.spark.AccumulatorParam
- Could not find parameter map Java.util.Map Parameter Maps collection does not contain value for java
- 解决Could not find method android() for arguments问题
- 解决Could not find method android() for arguments问题
- 解决Could not find method android() for arguments问题
- No Implicit Value for Evidence Parameter Error
- mybatis 错误解决Could not find parameter map
- 客户端调用axis2服务端时报的错:Deserializing parameter 'getPersonReturn': could not find deserializer for type {
- Could not find parameter map
- could not launch process: Could not determine version number: could not find symbol value for runtim
- 解决Exception raised during rendering: Could not find layout resource matching value...问题
- Could not find value for key log4j.appender.WARN
- 解决[...]Could not find XXXXX.apk问题
- Maven: Could not get the value for parameter encoding for plugin execution default-resources Plugin
- CoreException: Could not get the value for parameter compilerId for plugin execution default-compile
- Could not get the value for parameter encoding for plugin execution default-resources Plugin org.apa
- CoreException: Could not get the value for parameter compilerId for plugin execution default-compile
- 三种算法求解一个数组的子数组最大和
- rowid
- Unity物理引擎:Colliders简介
- Android Canvas绘图详解(图文)
- 第二周项目二程序的多文件组织
- could not find implicit value for parameter extractor 问题的解决
- Linux静态库与动态库的详解
- 字符串循环移位
- linux常用命令(24):Linux文件类型与扩展名
- 2014BIT程序设计06贪婪的你
- Android系统版本与API Level对照表
- 排列组合算法
- 午后时光
- NSString 字符串替换