hibernate中对象与对象的关系(四):映射枚举类型

Gender枚举类:

public enum Gender {
    male, female;
}

Person类:

public class Person {
private Long id;
private String name;
private Gender gender;
//省略get,set方法
}

person.hbm.xml;

<hibernate-mapping package="objectn.exus.s7_enum">
    <class name="Person">
        <id name="id">
            <generator class="native" />
        </id>
        <property name="name" />

   <property name="gender">
            <!-- name: 设置处理的类型  -->
            <type name="org.hibernate.type.EnumType">
            <!-- 设置要处理的类的全限定名称 -->
            <param name="enumClass">objectn.exus.s7_enum.Gender</param>
            <param name="useNamed">true</param>
            </type>
        </property>

   </class>
</hibernate-mapping>

保存person对象;

    public void testSave() {
        Person per=new Person("张三");
        per.setGender(Gender.male);
        Session session = HibernateUtils.getSession();
        Transaction transaction = session.beginTransaction();

        session.save(per);
        
        transaction.commit();
        session.close();
    }

SQL语句;

Hibernate: create table Person (id bigint not null auto_increment, name varchar(255), gender varchar(255), primary key (id))
Hibernate: insert into Person (name, gender) values (?, ?)

生成表结构;

原文地址:https://www.cnblogs.com/zhang-bo/p/6582043.html