gpt4 book ai didi

java - 使用 Hibernate 映射 FunctionalJava Option

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:49:25 24 4
gpt4 key购买 nike

我有一个 hibernate 映射的 Java 对象,JKL ,其中充满了一堆正常的 hibernate 可映射字段(如字符串和整数)。

我向它添加了一个新的嵌入字段(它位于同一个表中——而不是映射),asdf ,这是一个 fj.data.Option<ASDF> .我已将它作为一个选项来明确表示该字段实际上可能不包含任何内容(而不是每次访问它时都必须处理 null)。

如何在我的 JKL.hbm.xml 中设置映射文件?我希望 hibernate 自动转换 null在数据库中为 nonefj.data.Option<ASDF>当它检索对象时。它还应转换 ASDF 的非空实例到 somefj.data.Option<ASDF> .

还有什么我必须做的其他诡计吗?

最佳答案

我建议引入 FunctionalJava 的 Option在访问器(getter 和 setter)中,同时让 Hibernate 处理一个简单的 java 字段,该字段允许为 null .

例如,对于可选的 Integer领域:

// SQL
CREATE TABLE `JKL` (
`JKL_ID` INTEGER PRIMARY KEY,
`MY_FIELD` INTEGER DEFAULT NULL
)

您可以直接映射一个 Hibernate 私有(private)字段:

// Java
@Column(nullable = true)
private Integer myField;

然后你可以引入Option在访问者边界:

// Java
public fj.data.Option<Integer> getMyField() {
return fj.data.Option.fromNull(myField);
}

public void setMyField(fj.data.Option<Integer> value) {
myField = value.toNull();
}

这是否满足您的需求?

关于java - 使用 Hibernate 映射 FunctionalJava Option<Type>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10604865/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com