【发布时间】:2012-08-21 04:33:59
【问题描述】:
在Java Persistence with Hibernate 一书中,它讨论了使用UserType 的以下用例:
我们需要在数据库中存储货币金额,但用户可以使用任何货币。因此,我们在将金额存储到数据库之前将其“标准化”为美元,并使用UserType 实现,该实现将在存储之前将金额转换为美元,并在从数据库中读取它之后将其转换为用户指定的货币,然后将其返回给用户。
我可以想到另外两种方法来做到这一点:
1) 使用 Hibernate 的字段访问来存储/读取 DB,并使用公共 getter/setter 进行转换,
2) 为 Hibernate 创建一对将使用 USD 的私有 getter/setter,以及为用户进行必要转换的公共 getter/setter。
这些方法与使用UserType 相比如何? UserType还有其他优势吗?
【问题讨论】: