PlayFramework 2: извлечение данных из базы данных h2, десятичные типы не отображаются с десятичным типом Scala

Я новичок в PlayFramework а также Scala, я использую PlayFrameworkanorm для включения подключения к базе данных и использования встроенного h2 database, Когда я вставляю значения в таблицу, вставка выполнена успешно. Но когда я получаю данные из базы данных, они генерируют ошибку, как показано ниже:

[RuntimeException: Left(TypeDoesNotMatch(Cannot convert 25.50: class java.math.BigDecimal to Float for column ColumnName(USER_DETAIL.AGE,Some(AGE))))]

Следующее - мой POJO:

case class UserDetail(
 val id: Int,
 val name: String,
 val age: Float
) 

Следующий мой контроллер:

def getUserDetail = Action{
val userDetail = UserDetail(13, "James", 25.9F);
var sql: SqlQuery = SQL("SELECT * FROM USER_DETAIL");
def users: List[UserDetail] =  DB.withConnection { implicit connection => 
  sql().map(row => UserDetail(row[Int]("id"), row[String]("name"), row[Float]("age"))).toList
}
println(">>>>>>>>>>>>>>>>>>>>: "+users)
Ok(Json.toJson(users));
}

Ниже приведена структура моей таблицы:

create table User_Detail(
 id int NOT NULL PRIMARY KEY,
 name varchar(45),
 age decimal(20, 2)
)

Я тоже пытаюсь заменить decimal введите с double в таблице, но он снова генерирует ту же ошибку, что и выше

[RuntimeException: Left(TypeDoesNotMatch(Cannot convert 25.50: class java.lang.Double to Float for column ColumnName(USER_DETAIL.AGE,Some(AGE))))

1 ответ

Решение

Как насчет

case class UserDetail(
 val id: Int,
 val name: String,
 val age: Double
)

редактировать:

А потом использовать row[Double]("age") при чтении

Другие вопросы по тегам