我有一个hibernate映射的Java对象,JKL其中充满了许多正常的可hibernate映射字段(例如字符串和整数)。
JKL
我向其中添加了一个新的嵌入式字段(该字段位于同一表中- 而不是映射)asdf,它是一个fj.data.Option<ASDF>。我已经明确表示该字段可能实际上不包含任何内容(而不是null每次访问它都必须进行处理)。
asdf
fj.data.Option<ASDF>
null
如何在JKL.hbm.xml文件中设置映射?我想hibernate来自动转换null数据库到none的fj.data.Option<ASDF>,当它获取对象。它还应将的非空实例转换ASDF为some的fj.data.Option<ASDF>。我还有别的骗术吗?谢谢。
JKL.hbm.xml
none
ASDF
some
我建议Option在访问器(getter和setter)中引入FunctionalJava ,同时让Hibernate处理允许使用的简单Java字段null。
Option
例如,对于可选Integer字段:
Integer
// SQL CREATE TABLE `JKL` ( `JKL_ID` INTEGER PRIMARY KEY, `MY_FIELD` INTEGER DEFAULT NULL )
您可以直接映射Hibernate私有字段:
// 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(); }
这符合您的需求吗?