`
wang4674890
  • 浏览: 88982 次
  • 性别: 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> 
     
分享到:
评论

相关推荐

    hibernate映射枚举类型

    Hibernate通过`@Enumerated`和`@Type`注解为枚举类型提供了灵活的映射机制,允许开发者根据项目需求选择合适的方式。正确地映射枚举类型可以增强代码的可读性和可维护性,同时减少因数据类型转换导致的潜在错误。在...

    Hibernate注释方法描述数据库映射

    `@Temporal` 注解接受 `DATE`, `TIME`, `TIMESTAMP` 这三个枚举值,分别映射到 `java.sql.Date`, `java.sql.Time`, `java.sql.Timestamp` 类型。 #### 七、大对象的持久化 对于大对象(如文本、图像等),可以使用...

    Hibernate注解详解.pdf

    一旦某个类被标记为此注解,Hibernate就会将其映射为数据库中的表。 - **`@Id`**:该注解用于指定实体Bean的主键字段。主键字段通常是用来唯一标识数据库表中每一行记录的字段。 在Hibernate中,可以通过注解的方式...

    Hibernate注解详解(超全面不解释).pdf

    此外,`@Enumerated`注解用于将枚举类型存储为字符串或整数: ```java @Enumerated(EnumType.STRING) Starred getNote() { ... } // enum persisted as String in database ``` 总的来说,Hibernate注解使得Java...

    hibernate注解大全

    8. **@Enumerated**:用于枚举类型的映射,EnumType.STRING将枚举值存储为字符串。例如: ```java @Enumerated(EnumType.STRING) private Starred getNote() { ... } ``` 9. **@Lob**:用于大对象(BLOB或CLOB...

    Hibernate注解详解

    - 使用`@Enumerated(EnumType.STRING)`将枚举类型持久化为字符串。例如: ```java @Enumerated(EnumType.STRING) Starred getNote() { ... } // 枚举持久化为字符串 ``` 9. **大对象(LOB)类型** - `@Lob`...

    Hibernate注解大全收藏

    9. **@Enumerated**:用于枚举类型,EnumType.STRING将枚举值保存为字符串。例如: ```java @Enumerated(EnumType.STRING) private Starred note; ``` 10. **@OneToMany, @ManyToOne, @OneToOne, @ManyToMany**:...

    MySQL中set类型的使用

    `@ElementCollection`表示这是一个多值属性,而`@Enumerated(EnumType.STRING)`则指示Hibernate应该将枚举值存储为字符串。 在个人项目中,使用`SET`类型可以帮助你有效地管理有限集合的数据,提高数据的一致性和...

    Hibernate注解详解(超全面不解释)

    这里,`@Enumerated(EnumType.STRING)`将枚举值作为字符串存储在数据库中。 #### 大对象的处理 对于大文本或二进制数据,Hibernate提供了`@Lob`注解,该注解可以将属性映射为BLOB(Binary Large Object)或CLOB...

    HIbernate annotation使用手册

    - **用途**:用于处理枚举类型数据,将其持久化为字符串或整数。 - **示例**: ```java public enum Status { ACTIVE, INACTIVE } @Entity public class User implements Serializable { @Enumerated(Enum...

    自定义注解annotation及用法

    - 数据库映射,如Hibernate的`@Entity`, `@Table`, `@Column`等。 ### 8. 总结 自定义注解是Java中强大的工具,它增强了代码的可读性,简化了复杂逻辑,并为自动化处理提供了途径。了解并熟练运用自定义注解能提高...

    java从基础到应用编程经验

    - **枚举(Enum)**:提供了一种定义固定常量集的方式。 - **注解(Annotation)**:为元数据提供了一种标准化的标记方式,可用于自动生成文档或进行编译时验证。 #### J2EE与Web开发框架 随着业务需求的增长,Java...

    奥术精华:EB巫术的东西!

    - 数据类型:Java有两类数据类型:基本类型(如int、double、boolean)和引用类型(类、接口、数组)。 - 控制结构:包括条件语句(if、switch)、循环(for、while、do-while)以及跳转语句(break、continue)。...

    java面试题

    - **switch操控符**:用于多条件选择,支持int、char、enum以及字符串作为参数。 - **静态变量**:在整个程序运行期间都存在,属于类而非对象。 - **最终变量**(final):一旦赋值后不能更改,可以保证数据的不可...

Global site tag (gtag.js) - Google Analytics