我正在 Hibernate 中为项目创建自定义 UserType。在我使用 isMutable 方法之前,它一直相对简单。我试图弄清楚这种方法在合同方面意味着什么。
这是否意味着我为其创建 UserType 的类是不可变的,或者是否意味着持有对该类实例的引用的对象永远不会指向不同的实例?
我在中找到了一些例子Hibernate 社区 Wiki他们返回 true,因为对象本身是可变的 -http://www.hibernate.org/73.html.
社区 wiki 中的其他示例返回 false,但没有说明原因,即使它们也是可变的。
我查了JavaDoc,但也不是很清楚。
来自 JavaDocUserType:
public boolean isMutable()
Are objects of this type mutable?
Returns:
boolean
来自 JavaDoc 的Type:
public boolean isMutable()
Are objects of this type mutable. (With respect to the referencing
object ... entities and collections are considered immutable because
they manage their own internal state.)
Returns:
boolean
Hibernate 会将标记为“可变”的类型视为可以更改(即需要更新)without指向一个新的参考。如果你为 Hibernate 加载的属性分配一个新的引用,即使类型是不可变的,Hibernate 也会识别这一点 - 例如,对于 String 字段,这种情况总是会发生。
但是,如果您有一个 StringBuilder 字段并将其标记为不可变的休眠会not如果您修改了 StringBuilder,请注意。
See 这篇博文了解更多详细信息和示例项目。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)