【发布时间】:2011-02-03 19:34:57
【问题描述】:
我正在 Hibernate 中创建一个自定义 UserType 类。具体案例是针对 HL7v3 临床文档(我在健康 IT 部门工作)。它是一个可变对象,大多数围绕 Hibernate UserType 接口的文档似乎都围绕着不可变类型。我想更好地了解接口方法的使用方式和时间,特别是:
assemble - 为什么有两个参数(一个 Serializable,一个 Object)?这种方法的用例是什么?
disassemble - 我应该只实现此方法以返回可序列化的形式(例如字符串表示)吗?何时以及如何调用此方法?
equals - 这是为了更新吗?读?争论?脏读?在大多数情况下简单地返回 false 的后果是什么?
replace - 我真的不明白这三个 Object 参数从何而来,何时调用此方法,以及 Hibernate 期望返回什么,或者如何使用该返回值。
任何指针将不胜感激。我已经搜索并阅读了有关该主题的所有内容,但根本没有找到太多解释这些方法如何用于可变对象的文档。
【问题讨论】:
-
如果有帮助,我可以提一下,我正在将 HL7v3 临床文档 RIM 类型映射到数据库 XML 列。逻辑相等并不一定意味着序列化形式的相等。序列化的形式是一个 XML 字符串。
-
对,就是API。没有解释何时使用 equals 或 assemble 中参数的用途(例如)。我希望对我的实现更有信心,所以我想确切地知道每种方法的使用时间和方式。
标签: java database hibernate orm hibernate-mapping