Ste*_*eve 7 annotations hibernate typedef hibernate-annotations
我正在尝试定义一个CompositeUserType来处理我的JPA/Hibernate应用程序中的特定类型.我有一个名为ApplicationMessageType的CompositeUserType,用于处理我的映射.
根据我读过的内容,我应该能够在包含TypeDef的域层次结构中创建一个package-info.java类.我看起来像这样:
@TypeDefs({
@TypeDef(
defaultForType = ApplicationMessage.class,
typeClass = ApplicationMessageType.class
)
})
package mptstp.domain;
import mptstp.domain.messages.ApplicationMessage;
import org.hibernate.annotations.TypeDef;
import org.hibernate.annotations.TypeDefs;
Run Code Online (Sandbox Code Playgroud)
如果我理解正确,我正在使用DefaultDeType参数到TypeDef这一事实,无论何时我尝试保存或加载ApplicationMessage,都应该调用自定义类型代码.
我已经在ApplicationMessageType类中的每个方法上设置了断点,并且没有一个 被调用.
有谁知道我哪里出错了?代码编译,但似乎从未调用TypeDef注释来注册ApplicationMessageType.
任何指针将不胜感激......
谢谢
我正在尝试定义 CompositeUserType 来处理 JPA/Hibernate 应用程序中的特定类型。我有一个名为 ApplicationMessageType 的 CompositeUserType,旨在处理我的映射。
请记住,您必须在复合@Columns用户类型的字段或属性级别声明列(使用注释)。
根据我所读到的内容,我应该能够在我的域层次结构中创建一个 package-info.java 类,其中包含
TypeDefs.
这是正确的,并且当在多个实体中使用自定义类型时,这是推荐的策略。
如果我理解正确,事实上我正在使用 TypeDef 的 defaultForType 参数,每当我尝试保存或加载 ApplicationMessage 时,都应该调用自定义类型代码。
理论上,该defaultForType元素意味着当 Hibernate 遇到 class 的属性时ApplicationMessage,它应该将持久化策略委托给自定义映射类型ApplicationMessageType。
但我确定这如何与复合用户类型一起使用,但我不确定您是否必须重复 来声明@Type(在这种情况下,您应该在 中@Columns声明别名)。nameTypeDef
有谁知道我哪里出了问题?代码可以编译,但似乎从未调用 TypeDef 注释来注册 ApplicationMessageType。
不能说。您是否真的成功地保留了具有类属性的实体ApplicationMessage,或者根本没有成功?也许显示一个带注释的实体。
| 归档时间: |
|
| 查看次数: |
12548 次 |
| 最近记录: |