`
wang4674890
  • 浏览: 87529 次
  • 性别: Icon_minigender_2
  • 来自: 厦门
社区版块
存档分类
最新评论

Hibernate将Enum枚举类型映射为Int类型 .

阅读更多

最近要用Hibernate做一个枚举类型的映射,在MySQL数据库中,hibernate的map文件中如果不配置枚举类型属性的type,那么hibernate会默认的将Enum类型映射为TinyBlob类型,这样就很尴尬了,似乎要多耗费很多的资源,去网上找了一下,有很多种解决办法

  1. 如果用的是annotation那么用@Enumerated(EnumType.STRING)直接可以映射为String类型
  2. 如果采用XML配置就没这么简单了,网上最多的方法是利用Hibernate提供的UserType但这样并不是最好的解决办法,还有一种更好的办法
  3. package com.igalia.enumerates;  
    public enum Status {    
         BUSY,    AVAILABLE; 
    }  
    
    package com.igalia.entities;  
    class MyClass {    
        private Status status; 
        //getter and setter
    } 
     
  4. <class name="MyClass">    
        <id name="id">      
            <generator class="native"/>    
        </id>     
        <property name="status">       
            <type name="org.hibernate.type.EnumType">          
                <param name="enumClass">
                    com.igalia.enumerates.Status
                </param>       
            </type>    
        </property> 
    </class> 
     
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics