hibernate-xml配置模板
1.多对一单向映射(User- Group)
【Group.hbm.xml文件如下:】
<hibernate-mapping>
<class name="com.dragon.hibernate.Group" table="t_group">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
</class>
</hibernate-mapping>
【User.hbm.xml文件如下:】
<hibernate-mapping>
<class name="com.dragon.hibernate.User" table="t_user">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<many-to-one name="group" column="groupid"/>
</class>
</hibernate-mapping>
---------------------------------------------------------
2.多对多双向映射(User<- Role)
【User.hbm.xml文件如下】
<hibernate-mapping>
<class name="com.dragon.hibernate.User" table="t_user">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<set name="roles" table="t_user_role">
<key column="userid"/>
<many-to-many class="com.dragon.hibernate.Role" column="roleid"/>
</set>
</class>
</hibernate-mapping>
【Role.hbm.xml文件如下】
<hibernate-mapping>
<class name="com.dragon.hibernate.Role" table="t_role">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<set name="users" table="t_user_role">
<key column="roleid"/>
<many-to-many class="com.dragon.hibernate.User" column="userid"/>
</set>
</class>
</hibernate-mapping>
---------------------------------------------------------
3.多对多单向映射(User<-Role)
在User端使用set 引用role 维持关系,则User.hbm.xml文件同上面的双向一样,只有Role.hbm.xml文件稍微有所小小的不同,比双向更简单。
【Role.hbm.xml文件如下】
<hibernate-mapping>
<class name="com.dragon.hibernate.Role" table="t_role">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
</class>
</hibernate-mapping>
【User.hbm.xml文件如下】
<hibernate-mapping>
<class name="com.dragon.hibernate.User" table="t_user">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<set name="roles" table="t_user_role">
<key column="userid"/>
<many-to-many class="com.dragon.hibernate.Role" column="roleid"/>
</set>
</class>
</hibernate-mapping>
---------------------------------------------------------
4.一对一主键双向(Person?-> IdCard)
【Person.hbm.xml文件如下】
<hibernate-mapping>
<class name="com.dragon.hibernate.Person" table="t_person">
<id name="id">
<generator class="foreign">
<param name="property"> idcard</param>
</generator>
</id>
<property name="name"/>
<one-to-one name="idcard" constrained="true"/>
</class>
</hibernate-mapping>
【Idcard.hbm.xml文件如下】
<hibernate-mapping>
<class name="com.dragon.hibernate.IdCard" table="t_idcard">
<id name="id">
<generator class="native"/>
</id>
<property name="idno"/>
<one-to-one name="person"></one-to-one>
</class>
</hibernate-mapping>
One-to-one标签指示hibernate如何加载关联对象,默认是根据主键加载;
constrained="true"表示当前主键存在一个约束,person的主键作为外键参照idcard。
---------------------------------------------------------
5.一对一主键单向(Person--> IdCard)
Person.hbm.xml文件如下相同
Idcard.hbm.xml文件如下:
<hibernate-mapping>
<class name="com.dragon.hibernate.IdCard" table="t_idcard">
<id name="id">
<generator class="native"/>
</id>
<property name="idno"/>
</class>
</hibernate-mapping>
与双向的只是少了这句<one-to-one name="person"> </one-to-one>
6.一对一外键单向(Person--> IdCard)
IdCard.hbm.xml文件如下:
<hibernate-mapping>
<class name="com.dragon.hibernate.IdCard" table="t_idcard">
<id name="id">
<generator class="native"/>
</id>
<property name="idno"/>
</class>
</hibernate-mapping>
Person.hbm.xml文件如下:
<hibernate-mapping>
<class name="com.dragon.hibernate.Person" table="t_person">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<many-to-one name="idcard" column="idcardid" unique="true"/>
</class>
</hibernate-mapping>
---------------------------------------------------------
7.一对一外键双向(Person<--> IdCard)
Person.hbm.xml文件与单向一样
IdCard.hbm.xml文件如下:
<hibernate-mapping>
<class name="com.dragon.hibernate.IdCard" table="t_idcard">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<one-to-one name="person" proper-ref=“idcard”/>
</class>
</hibernate-mapping>
---------------------------------------------------------
8.一对多单向(Group--> User)
注意,在key中的外键 <key column="groupid"/>要一致不然要生成中间表
【Group.hbm.xml文件如下】
<hibernate-mapping package="com.dragon.hibernate">
<class name="Group" table="t_group">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<set name="users">
<key column="groupid"/>
<one-to-many class="User"/>
</set>
</class>
</hibernate-mapping>
【User.hbm.xml文件如下】
<hibernate-mapping>
<class name="com.dragon.hibernate.User" table="t_user">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
</class>
</hibernate-mapping>
---------------------------------------------------------
9.一对多双向(Group<--> User)
【Group.hbm.xml文件如下】
<hibernate-mapping package="com.dragon.hibernate">
<class name="Group" table="t_group">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<set name="users" cascade="all">
<key column="groupid"/>
<one-to-many class="User"/>
</set>
</class>
</hibernate-mapping>
【User.hbm.xml文件如下:】
<hibernate-mapping>
<class name="com.dragon.hibernate.User" table="t_user">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<many-to-one name="groups" column="groupid"/>
</class>
</hibernate-mapping>
---------------------------------------------------------
10.继承映射(Pig和Bird 继承Animal)
--一棵继承树映射成一张表
extends.hbm.xml文件如下:
<hibernate-mapping package="com.dragon.hibernate">
<class name="Animal" table="t_extends">
<id name="id">
<generator class="native"/>
</id>
<discriminator column="type" type="string"/>
<property name="name"/>
<property name="sex"/>
<subclass name="Pig" discriminator-value="P">
<property name="weight"/>
</subclass>
<subclass name="Bird" discriminator-value="B">
<property name="height"/>
</subclass>
</class>
</hibernate-mapping>
---------------------------------------------------------
11.继承映射(Pig和Bird 继承Animal)--每个具体类映射成一张表joined-classs
extends.hbm.xml文件如下:
<hibernate-mapping package="com.dragon.hibernate">
<class name="Animal" table="t_animal">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<property name="sex"/>
<joined-subclass name="Pig" table="t_pig">
<key column="pid"/>
<property name="weight"> </property>
</joined-subclass>
<joined-subclass name="Bird" table="t_bird">
<key column="bid"/>
<property name="height"> </property>
</joined-subclass>
</class>
</hibernate-mapping>
---------------------------------------------------------
12.继承映射(Pig和Bird 继承Animal)--每个子类类映射成一张表union-subclass
extends.hbm.xml文件如下:
<hibernate-mapping package="com.dragon.hibernate">
<class name="Animal" table="t_animal">
<id name="id">
<generator class="uuid"/>
</id>
<property name="name"/>
<property name="sex"/>
<union-subclass name="Pig" table="t_pig">
<property name="weight"/>
</union-subclass>
<union-subclass name="Bird" table="t_bird">
<property name="height"/>
</union-subclass>
</class>
</hibernate-mapping>
**注释在使用<id name="id">
<generator class="uuid"/>
</id> 是不能将<generator class="uuid"/> 改写成<generator class="native"/> ,不然会出错。相应的Animal类中的id字段类型也要该为String.
如果在<class name="Animal" table="t_animal"> 中添加Abstract="true"可以使hibernate不生成表t_animal
---------------------------------------------------------
13. component映射
component.hbm.xml文件如下:
<hibernate-mapping>
<class name="com.bjsxt.hibernate.User" table="t_user">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<component name="contact">
<property name="email"/>
<property name="address"/>
<property name="zipCode"/>
<property name="contactTel"/>
</component>
</class>
</hibernate-mapping>
User类中有以下属性:
private int id;
private String name;
private Contact contact;它不再是一种引用了
14. Set,Map,Arrary[],List映射
---------------------------------------------------------
CollectionMapping.hbm.xml文件如下:
<hibernate-mapping>
<class name="com.bjsxt.hibernate.CollectionMapping" table="t_CollectionMapping">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<set name="setValue" table="t_set_value">
<key column="set_id"/>
<element type="string" column="set_value"/>
</set>
<list name="listValue" table="t_list_value">
<key column="list_id"/>
<list-index column="list_index"/>
<element type="string" column="list_value"/>
</list>
<array name="arrayValue" table="t_array_value">
<key column="array_id"/>
<list-index column="array_index"/>
<element type="string" column="array_value"/>
</array>
<map name="mapValue" table="t_map_value">
<key column="map_id"/>
<map-key type="string" column="map_key"/>
<element type="string" column="map_value"/>
</map>
</class>
</hibernate-mapping>
分享到:
相关推荐
3. 数据库反向工程:在新版本中,Hibernate-tools的数据库反向工程功能更加完善,可以生成与现有数据库结构匹配的完整ORM模型,包括实体类、映射文件和配置文件,极大地简化了项目的初始化过程。 4. 源码兼容性:...
然后,创建一个配置文件(如`hibernatetool.properties`),设置数据库连接信息、实体类输出目录、模板文件等。接着,通过命令行或者集成到构建工具(如Maven或Gradle)中运行`Hibernate-tools`,执行反编译数据库...
1. **配置文件**:如Spring的`applicationContext.xml`,Hibernate的`hibernate.cfg.xml`,以及Struts的`struts-config.xml`等。 2. **实体类(Entity)**:对应数据库表的Java类,用于ORM映射。 3. **DAO(Data ...
- 配置文件:如hibernate.cfg.xml模板,供开发者参考和修改。 - 构建工具:可能包含构建脚本或Maven/Gradle配置,用于构建和测试项目。 通过这些文件,开发者可以快速搭建开发环境,学习并使用Hibernate进行数据库...
"hibernate-annotations"是Hibernate的一个扩展,引入了Java注解来定义对象-关系映射,替代了传统的XML配置文件。这样使得映射信息可以直接嵌入到Java类中,使得代码更加简洁,也更容易理解和维护。例如,`@Entity`...
3. **Hibernate配置文件验证**:检查Hibernate配置文件的正确性。 4. **Eclipse IDE集成**:在Eclipse环境中提供对Hibernate的支持,如代码完成、验证等。 ### 二、映射文件生成 映射文件是Hibernate理解数据库表...
本篇文章将详细介绍如何在Tomcat中配置Hibernate的XML模板,以便于在Java Web应用中实现高效的数据持久化。 首先,让我们理解这两个核心文件的作用: 1. `server.xml`:这是Tomcat服务器的主要配置文件,位于`conf...
2. Hibernate配置:在`hibernate.cfg.xml`文件中,设置`<property name="hibernate.connection.character_set_server">utf8</property>`,确保与数据库配置一致。 3. 字符集环境:确保开发环境(IDE)、构建工具(如...
4. Maven项目结构:熟悉Maven的目录结构,包括pom.xml配置文件,以及如何依赖管理和构建项目。 5. Web项目原型:通过分析weby项目,可以学习到一个基础的Web应用的搭建流程,包括数据库设计、前后端交互、错误处理等...
- `hibernate.cfg.xml`:这是Hibernate的配置文件,包含数据库连接信息、方言设置、缓存配置等。 - `实体类`:如`User.java`,代表数据库中的表,通常使用JavaBean模式,通过注解或XML映射到数据库表。 - `...
Spring会通过XML配置文件或Java配置类来定义Bean,这些Bean通常包括Hibernate的SessionFactory、DataSource、TransactionManager等关键组件。此外,Spring还能够管理事务,提供声明式事务处理,使得事务管理更加简洁...
在"hibernate-demo"项目中,我们将看到如何配置Hibernate的配置文件(hibernate.cfg.xml),以及实体类和映射文件(.hbm.xml),这些都是实现ORM的关键元素。 MariaDB的使用是此示例的另一个重点。与传统的MySQL...
接下来,我们需要在项目的src/main/resources目录下创建Hibernate的配置文件(例如:hibernate.cfg.xml)。此文件用于定义数据源、JDBC连接信息、Hibernate的属性以及映射文件的位置。配置文件应包含如下内容: ```...
- 配置Hibernate以连接数据库,同时设置Spring中的事务管理策略,确保数据操作的原子性和一致性。 **3. 载入Spring的applicationContext.xml** - 配置Spring的依赖注入,通过XML文件定义bean及其依赖关系,便于...
通过配置模板,开发者可以根据自己的需求定制生成的代码结构和风格。 2. **SQL脚本生成器**:它可以生成基于Hibernate配置的数据库创建和更新脚本,这对于快速搭建数据库环境或者版本升级非常有用。 3. **HQL/SQL...
“hbm.xml(模板)”是Hibernate的映射文件,它定义了Java类与数据库表之间的映射关系。开发者会在这里指定实体类的名称、属性与数据库表字段的对应,以及关联规则等。通过这种方式,Hibernate能够自动处理数据的...
这个"struts+spring+Hibernate+iBtais配置模板"应该包含上述所有组件的配置示例,帮助开发者快速搭建基于这些框架的应用。使用这个模板,可以极大地缩短项目初始化的时间,提高开发效率。在实际开发中,开发者需要...
Struts、Hibernate和Spring是Java开发中非常重要的三个框架,它们分别...在实际开发中,我们还需要关注相关的配置文件(如struts-config.xml、hibernate.cfg.xml、spring-context.xml等),确保各组件正确配置和交互。