在 Java 实体中可选以替换可为空的列

Optional in Java Entity to replace nullable columns

我想知道是否可以获得一些关于使用 Java 8 的可选 class 来包装实体中可为空的列的建议。我的意思在下面的代码示例中表达:

@Entity
public class Data {

    @Column(nullable=true)
    private String value;

    public Optional<String> getValue() {
        return Optional.ofNullable(value);
    }

    public void setValue(Optional<String> value) {
        this.value = value.orElse(null);
    }

数据库中的列仍然可以为空,但是,为了检查是否为空,必须使用 isPresent() 方法调用 getter。我喜欢这种明确性,而不是必须检查或记住列是否可为空。这样的模式commonand/or推荐吗?如果不是,您能否提供我 不应该 这样做的充分理由?

Brian Goetz 本人 answered 这个问题。他的判决:

I think routinely using it as a return value for getters would definitely be over-use.

基本上,Optional 并非设计为通用 MaybeSome 类型。有些事情绝对不应该用于它,吸气剂可以,但不要发疯。