我注意到这样一个表达式:
DB.withConnection { implicit conn =>
SQL("Select id, description FROM my_table WHERE id = {id}").on("id" -> 4)()
.map {
// TODO: Notice Integer.MAXVALUE = 2,147,483,647
// How can I handle a value retrieved from a int(11) column ?
case Row(id:Integer, Some(description:String) ) =>
new UserInquiry(id.toLong, description)
}
转换从 java.lang.Integer 中的 'id' 列检索到的值。这很好,除非我将列的大小定义为 9 位以上的长度。这将允许我的表列存储大于 java.lang.Integer 类可以容纳的值。
我们怎样才能克服这个限制?解决方案是让 Anorm 转换为 BigInt 或 Long,但是如何?