2016-03-05 7 views
0

У меня есть следующие модели:SormException неподдерживаемый тип

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$1: 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$1.apply(EntityMapping.scala:18) ~[sorm-0.3.19.jar:na] 
[info] at sorm.mappings.EntityMapping$$anonfun$properties$1.apply(EntityMapping.scala:18) ~[sorm-0.3.19.jar:na] 

Поэтому я думаю, что есть проблема с Sorm, но я не могу понять, в чем проблема.

Я не уверен, как работает Sorm, но я сомневаюсь, что он не поддерживает строки?

ответ

1

Просто удалите странный материал, который у вас есть в конструкторе, и все хорошо. Модель по определению должна быть только о данных. Вы внедрили побочный эффект извлечения из некоторого URL-адреса, что является ошибкой с точки зрения дизайна в любом случае.

+0

Так сказать, я хочу показать пользователю содержимое страницы. Где я должен получать данные со страницы? В другом методе в модели или в каком-либо действии в контроллере? – octavian

+1

Контроллер определенно. –

+0

Хорошо, (я знаю, что я немного отхожу от основной точки), но не должен ли MVC иметь большую логику в модели? – octavian

Смежные вопросы