Mysql EBean映射布尔值默认为false而不是null
我一直在使用Scala+EBean,我遇到了一个问题; 我有一个模型,看起来有点像这样Mysql EBean映射布尔值默认为false而不是null,mysql,scala,jpa,playframework,ebean,Mysql,Scala,Jpa,Playframework,Ebean,我一直在使用Scala+EBean,我遇到了一个问题; 我有一个模型,看起来有点像这样 case class SomeModel(name: String) extends Model { var someBool: Boolean = _ } 问题是,即使模式中someBool的默认值为null,EBean将其填充为0,并将其映射到mySQL中的TINYINT,我也应该能够在字段中保存null 理想情况下,我希望跟踪该字段是否已设置为模型中的值,其中字段的null表示该字段尚未填
case class SomeModel(name: String) extends Model {
var someBool: Boolean = _
}
问题是,即使模式中someBool的默认值为null,EBean将其填充为0,并将其映射到mySQL中的TINYINT,我也应该能够在字段中保存null
理想情况下,我希望跟踪该字段是否已设置为模型中的值,其中字段的null表示该字段尚未填充
解决这个问题的最佳方法是什么?一个可能的解决方案是简单地用java.lang.Boolean替换Boolean,因此
在Java中,boolean primitive与Java.lang.boolean nullable存在相同的问题,因此我猜更改为相应的nullable Scala类型会解决这个问题:Scala docs fro boolean注意,它“相当于Java的boolean primitive类型”@AlanHay目前,Java.lang.boolean在解决这个问题上相当完美。
case class SomeModel(name: String) extends Model {
var someBool: java.lang.Boolean = _
}