【问题标题】:EBean mapping Booleans defaulting to false instead of nullEBean 映射布尔值默认为 false 而不是 null
【发布时间】:2015-02-21 17:29:15
【问题描述】:

我一直在使用 Scala + EBean,但遇到了问题; 我有一个看起来有点像这样的模型;

case class SomeModel(name: String) extends Model { 
    var someBool: Boolean = _ 
}

问题是,即使 someBool 的默认值在架构中是 nullEBean0 填充它(它映射到 mySQL 中的 TINYINT),我应该也可以在字段中保存null

(理想情况下,我想跟踪该字段是否已设置为模型中的值),其中字段的null 表示该字段尚未填写。

解决这个问题的最佳方法是什么?

【问题讨论】:

  • 在 Java 中,boolean(原始的,不可为空的)与 java.lang.Boolean(可空的)会遇到同样的问题,所以我猜想更改相应的可为空的 Scala 类型会解决这个问题:Scala 文档from Boolean 注意它'相当于 Java 的布尔原始类型'
  • @AlanHay 现在,java.lang.Boolean 在解决这个问题方面做得相当完美。

标签: mysql scala jpa playframework ebean


【解决方案1】:

一个可能的解决方案是简单地将Boolean 替换为java.lang.Boolean,所以;

case class SomeModel(name: String) extends Model { 
    var someBool: java.lang.Boolean = _ 
}

【讨论】:

    猜你喜欢
    • 2017-08-04
    • 1970-01-01
    • 2015-01-11
    • 1970-01-01
    • 2013-10-11
    • 2014-03-23
    • 2019-09-03
    • 2022-11-08
    • 2019-08-17
    相关资源
    最近更新 更多