2013-05-12 11 views
5

Kiedy próbuję uruchomić (z gry Framework):Nie można odczytać za pomocą kolumny Integer Anorm

import play.api.db.DB 
import anorm._ 
import org.joda.time.DateTime 
import AnormExtensions._ // http://stackoverflow.com/a/11975107/11236 
import play.api.Play.current 
import java.util.Date 

var stream = SQL("SELECT amiId, created, version FROM Amis WHERE created = {maxCreated}") 
    .on("maxCreated" -> new Date(maxCreated.getMillis)) 
    .apply() 

val map: Stream[Ami] = stream.map { ami => 
    val s: String = ami[String]("amiId") 
    val date: Date = ami[Date]("created") 

    // The following line throws a compilation error 
    var version: Integer = ami[Integer]("version") 

    new Ami(s, new DateTime(date), version) 
} 

pojawia się błąd kompilacji: could not find implicit value for parameter c: anorm.Column[Integer]

Jaki jest problem? Jeśli mogę przeczytać Date, dlaczego nie mogę przeczytać Integer?

+0

czy próbowałeś używać DateTime zamiast Date? – Iraklis

+0

@ Iraklis - faktycznie 'DateTime' działa dobrze. Powyższy kod działa dobrze, gdy zastępuję 'ami [Integer] (" version ")' z '42'. – ripper234

Odpowiedz

2

Problem polegał na tym, że użyłem java java.lang.Integer zamiast scala.Int.

0

Taka brakująca konwersja numeryczna została naprawiona wraz z wydaniem wersji 2.3. Możesz chcieć uaktualnić do.

Powiązane problemy