SormException 不支持的类型
SormException unsupported type
我有以下型号:
package models
import java.net.URL
import play.api.Logger
import play.api.libs.json.Json
case class Page(url: String) {
var content: String = new URL(url).getContent().toString
Logger.info("Content is: " + content)
}
object Page {
implicit val personFormat = Json.format[Page]
}
数据库表示代码是这样的:
package models
import sorm._
object Db extends Instance(entities = Seq(Entity[Page]()), url="jdbc:h2:mem:test")
我收到以下错误:
[error] - play.core.server.netty.PlayDefaultUpstreamHandler - Cannot invoke the action
[info] java.lang.RuntimeException: java.lang.ExceptionInInitializerError
堆栈跟踪中的低位:
[info] Caused by: sorm.core.SormException: Unsupported type: (x: String)scala.Unit
[info] at sorm.mappings.MappingKind$.apply(MappingKind.scala:85) ~[sorm-0.3.19.jar:na]
[info] at sorm.mappings.Mapping$.apply(Mapping.scala:69) ~[sorm-0.3.19.jar:na]
[info] at sorm.mappings.Mapping$.apply(Mapping.scala:97) ~[sorm-0.3.19.jar:na]
[info] at sorm.mappings.EntityMapping$$anonfun$properties.apply(EntityMapping.scala:18) ~[sorm-0.3.19.jar:na]
[info] at sorm.mappings.EntityMapping$$anonfun$properties.apply(EntityMapping.scala:18) ~[sorm-0.3.19.jar:na]
因此,我认为 Sorm 存在问题,但我无法意识到问题所在。
我不确定 Sorm 是如何工作的,但我怀疑它不支持字符串?
只需删除构造函数中的奇怪内容即可。根据定义,模型应该只与数据有关。您植入了从某些 URL 获取数据的副作用,从设计的角度来看这两种方式都是错误的。
我有以下型号:
package models
import java.net.URL
import play.api.Logger
import play.api.libs.json.Json
case class Page(url: String) {
var content: String = new URL(url).getContent().toString
Logger.info("Content is: " + content)
}
object Page {
implicit val personFormat = Json.format[Page]
}
数据库表示代码是这样的:
package models
import sorm._
object Db extends Instance(entities = Seq(Entity[Page]()), url="jdbc:h2:mem:test")
我收到以下错误:
[error] - play.core.server.netty.PlayDefaultUpstreamHandler - Cannot invoke the action
[info] java.lang.RuntimeException: java.lang.ExceptionInInitializerError
堆栈跟踪中的低位:
[info] Caused by: sorm.core.SormException: Unsupported type: (x: String)scala.Unit
[info] at sorm.mappings.MappingKind$.apply(MappingKind.scala:85) ~[sorm-0.3.19.jar:na]
[info] at sorm.mappings.Mapping$.apply(Mapping.scala:69) ~[sorm-0.3.19.jar:na]
[info] at sorm.mappings.Mapping$.apply(Mapping.scala:97) ~[sorm-0.3.19.jar:na]
[info] at sorm.mappings.EntityMapping$$anonfun$properties.apply(EntityMapping.scala:18) ~[sorm-0.3.19.jar:na]
[info] at sorm.mappings.EntityMapping$$anonfun$properties.apply(EntityMapping.scala:18) ~[sorm-0.3.19.jar:na]
因此,我认为 Sorm 存在问题,但我无法意识到问题所在。
我不确定 Sorm 是如何工作的,但我怀疑它不支持字符串?
只需删除构造函数中的奇怪内容即可。根据定义,模型应该只与数据有关。您植入了从某些 URL 获取数据的副作用,从设计的角度来看这两种方式都是错误的。