程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了休眠-如何映射EnumSet大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决休眠-如何映射EnumSet?

开发过程中遇到休眠-如何映射EnumSet的问题如何解决?下面主要结合日常开发的经验,给出你关于休眠-如何映射EnumSet的解决方法建议,希望对你解决休眠-如何映射EnumSet有所启发或帮助;

我使用EnumSet映射线程中的解决方案,该解决方案依赖于的使用<element column>。您只需要一个具有ID和字符串的表即可映射集合(@H_488_3@mYENTITY_color此处)。映射看起来像这样(这EnumUserType是Java 5 EnumUserType中的映射):

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapPing PUBliC "-//Hibernate/Hibernate MapPing DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapPing-3.0.dtd">
<hibernate-mapPing>
    <typedef name="color" class="com.stackoverflow.q2402869.EnumUserType">
        <param name="enumClassname">com.stackoverflow.q2402869.color</param>
    </typedef>
    <class name="com.stackoverflow.q2402869.MyEntity" entity-name="MyEntity" table="MYENTITY">
        <ID name="ID" type="java.lang.Long">
            <column name="ID" />
            <generator class="assigned" />
        </ID>
        <set name="colors" table="MYENTITY_colorS">
            <key column="ID" not-null="true"/>
            <element type="color" column="color"/>
        </set>
    </class>
</hibernate-mapPing>

查询可能如下所示:

SELEct disTinct e from MyEntity e join e.colors colors where colors IN ('WHITE', 'GREEN')

整个解决方案适用 于加载,保存和查询 (归于jasonab)。

解决方法

我有一个颜色枚举

public enum color { GREEN,WHITE,RED }

我有包含它的MyEntity。

public class MyEntity {
   private Set<Color> colors;
   ...

我已经有一个UserType来映射我的枚举。
您知道如何在Hibernate hbm.xml中映射枚举集吗?
我需要一个UserType还是最简单的方法?
谢谢

编辑: 只是为了说明一下,我正在寻找 hbm.xml 配置而不是@CollectionOfElements注释

大佬总结

以上是大佬教程为你收集整理的休眠-如何映射EnumSet全部内容,希望文章能够帮你解决休眠-如何映射EnumSet所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。