Mik*_*icz 6 java functional-programming hibernate option functional-java
我有一个hibernate映射的Java对象,JKL
它充满了一堆普通的hibernate-mappable字段(比如字符串和整数).
我添加了一个新的嵌入字段(它位于同一个表中 - 而不是映射)asdf
,这是一个fj.data.Option<ASDF>
.我已经明确表示这个字段实际上可能不包含任何东西(而不是null
每次访问它时都必须处理).
如何在我的JKL.hbm.xml
文件中设置映射?我想Hibernate来自动转换null
数据库到none
的fj.data.Option<ASDF>
,当它获取对象.还应的一个非空实例转换ASDF
到some
的fj.data.Option<ASDF>
.我还有其他的诡计吗?谢谢.
ms-*_*-tg 12
我建议Option
在访问器(getter和setter)中引入FunctionalJava ,同时让Hibernate处理一个允许的简单java字段null
.
例如,对于可选Integer
字段:
// SQL
CREATE TABLE `JKL` (
`JKL_ID` INTEGER PRIMARY KEY,
`MY_FIELD` INTEGER DEFAULT NULL
)
Run Code Online (Sandbox Code Playgroud)
您可以直接映射Hibernate私有字段:
// Java
@Column(nullable = true)
private Integer myField;
Run Code Online (Sandbox Code Playgroud)
然后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();
}
Run Code Online (Sandbox Code Playgroud)
这是否适合您的需求?
归档时间: |
|
查看次数: |
3583 次 |
最近记录: |