首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Hibernate用于枚举/类型代码

将Hibernate用于枚举/类型代码
EN

Stack Overflow用户
提问于 2011-08-18 16:05:24
回答 1查看 174关注 0票数 0

我正在尝试设置Hibernate XML文件,以便以字符串值而不是类实例的形式访问枚举。

DB模式:

代码语言:javascript
复制
table MyEntity (EntityId, EnumerationId)
table MyEnumeration (EnumerationId, EnumerationValue)

这提供了多个MyEntity行到一个MyEnumeration行的映射。MyEnumeration的一个例子可能是国家。

Hibernate hbm2hbmxml生成:

代码语言:javascript
复制
<hibernate-mapping>
    <class name="MyEntity" table="MyEntity">
        <many-to-one name="myEnumeration" class="MyEnumeration" fetch="select">
            <column name="EnumerationId" length="36" />
        </many-to-one>
        ...
</hibernate-mapping>

上面的映射起作用,因为我现在可以访问代码中的MyEnumeration实例,然后获取EnumerationValue。然而,我想抽象一下这一点。相反,我希望以字符串的形式访问myEnumeration属性,而不是MyEnumeration类。

如何使用Hibernate映射文件完成此操作?

EN

回答 1

Stack Overflow用户

发布于 2011-08-18 16:31:55

代码语言:javascript
复制
@Transient
public String getMyEnumerationValue() {
    if (this.myEnumeration == null) {
        return null;
    }
    else {
        return this.myEnumeration.getValue();
    }
}

setter更复杂,因为它需要访问会话才能获得具有给定值的枚举ID (前提是唯一的),以便填充myEnumeration字段。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7110540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档