2012-06-24 21 views
11

, gerçek (yani tek duyarlıklı kayan nokta) yük böyle bir satır ayrıştırıcı kullanarak PostgreSQL'den sütun yazmaya çalışıyorum değerleri could not find implicit value for parameter extractor: anorm.Column[Float]Anorm ayrıştırma şamandıra Çal çerçevesinde 2.0

Çift duyarlıklı türleri kullanırken her şey iyi çalışıyor. Anorm ile tek hassasiyetli yüzer kullanmak mümkün mü?

cevap

13

Hep var olanların üzerine kendi sütun ayrıştırıcı tabanı oluşturabilirsiniz:

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)) 
    } 
} 

ama doğru (sütun tanımına bağlıdır) olmayabilir JDBC sürücüsü tarafından döndürülen değerin tipine maçları .

+1

Kodu da buraya kontrol edin: https://github.com/isaka/Play20/commit/27f952257d775e1bfb4a0c61de6e0ef9c5a555d6 – Mortimer