当使用Ebean时,我们说,我有如下的ORM类:
@Entity
public class Student {
@id
private UUID id;
String age;
}
假设age是数据库中的一个可空列,我们必须始终检查该字符串的空值。是否有可能将年龄作为一个可选属性来明确实现这一点?
@Entity
public class Student {
@id
private UUID id;
Optional<String> age;
}
是否可以将年龄作为可选属性来显式执行此操作?
不,不可能。
请注意,我们可以修改Ebean以支持此操作,但我们没有这样做,因为我们认为这不是正确的操作
原因是因为通常期望java中的ANY FIELD不使用Optional。Optional期望用作返回类型或方法参数,但是NOT表示字段。IntelliJ将在任何使用Optional类型的字段上显示警告。
所以Ebean不支持可选字段,因为这与一般期望的可选字段不应该这样使用是不一致的。