enum类型映射到hbm.xml配置文件
来源:互联网 发布:博客编辑软件 编辑:程序博客网 时间:2024/05/22 09:51
1. 性别枚举类型类:Gender.java
- /**
- * Filename: ExportDBScript.java
- * Author: qiujy
- * Createtime:Nov 22, 2008
- * Copyrights 2008 qjyong All rights reserved.
- * EMail: qjyong@gmail.com
- */
- package com.qiujy.common.myusertype;
- import java.io.Serializable;
- /**
- * 性别枚举类型
- *
- * @author qiujy
- */
- public enum Gender implements Serializable {
- Male("男", 0), Female("女", 1), Other("保密", 2);
- private String name;
- private int value;
- public String getName() {
- return name;
- }
- public int getValue() {
- return value;
- }
- private Gender(String name, int value) {
- this.name = name;
- this.value = value;
- }
- public static Gender getGender(int value) {
- if (0 == value){
- return Male;
- }else if (1 == value){
- return Female;
- }else{
- return Other;
- }
- }
- @Override
- public String toString(){
- return this.name;
- }
- }
2.自定义枚举映射类型类:GenderType.java
- /**
- * Filename: ExportDBScript.java
- * Author: qiujy
- * Createtime:Nov 22, 2008
- * Copyrights 2008 qjyong All rights reserved.
- * EMail: qjyong@gmail.com
- */
- package com.qiujy.common.myusertype;
- import java.io.Serializable;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import org.hibernate.Hibernate;
- import org.hibernate.HibernateException;
- import org.hibernate.usertype.UserType;
- /**
- * 自定义hibernate的性别枚举映射类型
- *
- * @author qiujy
- */
- public class GenderType implements UserType {
- /** 告诉Hibernate要使用什么SQL列类型生成DDL */
- public int[] sqlTypes() {
- return new int[]{Hibernate.SHORT.sqlType()};
- }
- /** 告诉Hibernate这个UserType用来映射的数据类型。这里是Gender类 */
- @SuppressWarnings("unchecked")
- public Class returnedClass() {
- return Gender.class;
- }
- /** 告诉hibernate这个类型是不可变的。有微小的性能优化 */
- public boolean isMutable() {
- return false;
- }
- /**这是用于Hibernate缓存生成的快照,由于Gender是不可变的,直接返回就好了。*/
- public Object deepCopy(Object arg0) throws HibernateException {
- return arg0;
- }
- /** hibernate把这个数据放入二级缓存时要调用的方法 */
- public Serializable disassemble(Object arg0) throws HibernateException {
- return (Serializable)arg0;
- }
- /** 从二级缓存中取这个对象数据时要调用的方法 */
- public Object assemble(Serializable arg0, Object arg1)
- throws HibernateException {
- return arg0;
- }
- /** 处理脱管对象状态的合并。*/
- public Object replace(Object original, Object target, Object owner)
- throws HibernateException {
- return original;
- }
- public boolean equals(Object x, Object y) throws HibernateException {
- return x == y;
- }
- public int hashCode(Object o) throws HibernateException {
- return o.hashCode();
- }
- /** 从JDBC的ResultSet读取属性值。这个方法是在从数据库查询数据时用到。 */
- public Object nullSafeGet(ResultSet rs, String[] names, Object owner)
- throws HibernateException, SQLException {
- int value = rs.getInt(names[0]);
- return Gender.getGender(value);
- }
- /** 将属性的值设置到PreparedStatement。 */
- public void nullSafeSet(PreparedStatement ps, Object value, int index)
- throws HibernateException, SQLException {
- if (value == null) {
- ps.setInt(index, Hibernate.SHORT.sqlType());
- } else {
- ps.setInt(index, ((Gender) value).getValue());
- }
- }
- }
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE hibernate-mapping PUBLIC
- "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
- "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
- <hibernate-mapping>
- <class name="com.qiujy.domain.Account" table="account">
- <id name="id" column="id">
- <generator class="native"/>
- </id>
- <property name="loginname" column="login_name"/>
- <property name="pwd"/>
- <property name="gender" type="com.qiujy.common.myusertype.GenderType"/>
- <property name="registedTime" type="timestamp" column="registed_time"/>
- </class>
- </hibernate-mapping>
3.在映射文件中使用:
- enum类型映射到hbm.xml配置文件
- enum类型映射到hbm.xml配置文件
- *.hbm.xml 映射配置文件
- Hibernate-配置文件-映射文件.hbm.xml
- 再讲*.hbm.xml中的类型映射
- hibernate映射配置文件(xxx.hbm.xml)内容及作用
- hibernaet.hbm.xml配置文件
- xml配置文件映射到类
- hibernate映射文件??.hbm.xml配置映射元素详解--Hibernate映射类型
- hibernate映射文件 xx.hbm.xml配置映射元素详解--Hibernate映射类型
- hibernate映射文件??.hbm.xml配置映射元素详解--Hibernate映射类型
- Hibernate学习-08:配置-核心配置文件hibernate.cfg.xml、映射文件*.hbm.xml
- hibernate hbm xml 关系映射
- hibernate hbm.xml配置文件说明
- hibernate实体配置文件 *.hbm.xml
- Hibernate***.hbm.xml配置文件详解
- C# - 将enum类型映射到字符串上
- Hibernate框架中hibernate.properties属性文件,hibernate.cfg.xml配置文件,以及Users.hbm.xml映射文件的配置
- 使用并监控proxool连接池
- Hibernate将Enum枚举类型映射为Int类型
- C#语法基础
- Android build environment搭建历程!
- Android开发应该掌握的28大内容和10大建议
- enum类型映射到hbm.xml配置文件
- Delphi中Chart组件,Chart控件用法
- Java基础_面向对象思想
- 朋友转发
- eclipse中运用MySQL数据库时遇到的那些事
- TheWavelet Tutorial Part 2
- CString.Format的详细用法
- Struts2常用标签总结
- struts特殊标签