Hibernate映射文件

Posted traveller-hzq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hibernate映射文件相关的知识,希望对你有一定的参考价值。

HibernateORM映射包含很多方面,其中一些需要在映射文件中进行配置,比如:

——表,表现在类名和表名相对应

字段——列,表现在字段名和列名相对应

对象——行,表现在OID和主键相对应

 

Hibernate中用来唯一标志实体对象的字段称为OID,一般使用id字段作为OIDHibernate使用OID判断两个实体对象是否对应同一行数据,

 

实体类 User.java

public class User {

 

    private Long id;

    private String name;

    private Date birthday;

 

    /* get/set方法 */

}

 

映射文件习惯上命名为:类名.hbm.xmlDTD约束文件在org.hibernate包下

User.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-mapping PUBLIC 

    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping>

    <class name="com.rupeng.pojo.User" table="T_Users">

        <id name="id" column="id">

            <generator class="native"></generator>

        </id>

        <property name="name" column="name"></property>

        <property name="birthday" column="birthday" type="date"></property>

    </class>

</hibernate-mapping>

 

 

<class>用来映射类和表

<id>用来映射OID和主键列

<generator>用来指定主键生成策略

 

主键生成策略

适用类型

说明

identify

intlong

使用自动递增主键生成主键值,比如mysql

sequence

intlong

使用序列生成主键值,比如oracle

native

intlong

根据数据库自动选择identity或者sequence

uuid

String

Hibernate生成UUID主键值

increment

intlong

Hibernate生成递增主键值

assigned

Stringintlong

由开发人员自己生成主键值

 

 

<property>用来映射字段和列,至于字段类型和列类型,Hibernate一般都能正确判断,但对于Date类型的字段最好使用type属性指定想要的列类型,如datetimedatetime

以上是关于Hibernate映射文件的主要内容,如果未能解决你的问题,请参考以下文章

hibernate 映射文件属性自定义查询语句?

Hibernate的映射文件配置

这个Hibernate映射文件哪里错了?

Hibernate 对象关系映射文件

Hibernate映射文件详解(News***.hbm.xml)二

Hibernate的映射文件