<?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.jaeson.hibernatestudy.bean.Role" table="role" catalog="db4myeclipse"> <id name="id" type="java.lang.Integer"> <column name="id" /> <generator class="native"></generator> </id> <property name="roleName" type="java.lang.String"> <column name="roleName" length="32" not-null="true" /> </property> <property name="roleDesc" type="java.lang.String"> <column name="roleDesc" length="128" /> </property> <!-- many2many双向关联 --> <set name="users" inverse="true" table="user_role" catalog="db4myeclipse"> <key> <column name="role_id" not-null="true" /> </key> <many-to-many entity-name="com.jaeson.hibernatestudy.bean.User"> <column name="user_id" length="32" not-null="true" /> </many-to-many> </set> </class> </hibernate-mapping>
<?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.jaeson.hibernatestudy.bean.IdCard" table="idcard" catalog="db4myeclipse"> <id name="id" type="java.lang.String"> <column name="id" length="32" /> <generator class="uuid"></generator> </id> <property name="cardNo" type="java.lang.String"> <column name="cardNo" length="32" not-null="true" /> </property> <property name="authDate" type="java.sql.Timestamp"> <column name="authDate" length="19" not-null="true" /> </property> <!-- one2one 默认是共享主键的加载方式,唯一外键关联必须在一端设置加载的连接属性, 连接属性指的是外键所在表的对应的类的属性,hibernate根据类属性对应的字段加载 连接类。IdCard根据主键id与关联表类User的idCard属性对应的列card_id进行加载 User对象。这里如果不设置property-ref属性,则加载User时,默认会使用 IdCard.id=User.id进行加载,这样就无法正确加载关联对象。 --> <one-to-one name="user" class="com.jaeson.hibernatestudy.bean.User" property-ref="idCard"></one-to-one> </class> </hibernate-mapping>
<?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.jaeson.hibernatestudy.bean.User" table="user" catalog="db4myeclipse"> <id name="id" type="java.lang.String"> <column name="id" length="32" /> <generator class="uuid"></generator> </id> <property name="userName" type="java.lang.String"> <column name="userName" length="32" not-null="true" /> </property> <!-- 组件映射 --> <component name="address" class="com.jaeson.hibernatestudy.bean.Address"> <property name="address" type="java.lang.String"> <column name="address" length="128" /> </property> <property name="zipCode" type="java.lang.Integer"> <column name="zipCode" /> </property> <property name="phone" type="java.lang.String"> <column name="phone" length="32" /> </property> </component> <!-- one2one外键关联,通过unique="true"实现 --> <many-to-one name="idCard" class="com.jaeson.hibernatestudy.bean.IdCard" cascade="all" fetch="select" unique="true"> <column name="card_id" length="32" /> </many-to-one> <!-- many2one关联 --> <many-to-one name="department" class="com.jaeson.hibernatestudy.bean.Department" fetch="select"> <column name="dept_id" length="32" /> </many-to-one> <!-- many2many关联 --> <set name="roles" table="user_role" catalog="db4myeclipse"> <key> <column name="user_id" length="32" not-null="true" /> </key> <many-to-many entity-name="com.jaeson.hibernatestudy.bean.Role"> <column name="role_id" not-null="true" /> </many-to-many> </set> </class> </hibernate-mapping>
<?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.jaeson.hibernatestudy.bean.Department" table="department" catalog="db4myeclipse"> <id name="id" type="java.lang.String"> <column name="id" length="32" /> <generator class="assigned"></generator> </id> <property name="deptName" type="java.lang.String"> <column name="deptName" length="32" not-null="true" /> </property> <!-- 设置fetch="join"在查询department时会使用inner join进行表连接查询,lazy失效 --> <many-to-one name="parentDept" class="com.jaeson.hibernatestudy.bean.Department" fetch="join"> <column name="parent_id" length="32" /> </many-to-one> <set name="users" inverse="true"> <key> <column name="dept_id" length="32" /> </key> <one-to-many class="com.jaeson.hibernatestudy.bean.User" /> </set> <set name="childDepts" inverse="true"> <key> <column name="parent_id" length="32" /> </key> <one-to-many class="com.jaeson.hibernatestudy.bean.Department" /> </set> </class> </hibernate-mapping>
相关推荐
标题“Hibernate映射关系配置:XML方式和注解方式”涉及到的是Java持久层框架Hibernate中的一个重要概念——对象关系映射(ORM)。在这个主题中,我们将探讨如何通过XML映射文件和注解来配置Hibernate实体之间的关系...
build.xml 手写自动生成Hibernate映射文件和配置文件源代码
Spring提供了`LocalSessionFactoryBean`用于配置基于XML的Hibernate映射,而`AnnotationSessionFactoryBean`则用于处理基于注解的映射。这两个类分别处理不同的映射方式,所以默认情况下,它们不能直接共存于同一个...
在本实例中,我们将深入探讨如何使用XML配置文件来实现Hibernate的表映射。 首先,Hibernate的XML配置文件通常被称为`hibernate.cfg.xml`,它是连接数据库、定义SessionFactory等核心设置的地方。在这个文件中,...
综上所述,"Hibernate映射配置实例大全"涵盖的内容广泛,包括基本的配置文件设置、实体类的XML和注解映射、集合映射、加载策略、事务管理和缓存配置等。通过深入学习和实践这些实例,开发者可以熟练地运用Hibernate...
本篇文章将深入探讨Hibernate的映射配置,帮助你理解如何在实际项目中有效地使用Hibernate。 一、Hibernate概述 Hibernate的核心功能在于它的持久化层,通过ORM机制将Java对象与数据库表进行绑定。它提供了一种在...
关系映射XML生成工具,如"Middlegen-Hibernate-r5",则是为了简化这一过程而设计的。这些工具能够自动生成Hibernate所需的配置文件,包括映射文件(.hbm.xml),这些文件定义了Java类和数据库表之间的映射关系。 ...
通过以上步骤,你已经成功地将Spring和Hibernate整合在一起,使用全XML配置方式实现了数据访问层。这种方式虽然较为繁琐,但能清晰地分离各层职责,便于管理和维护。在实际项目中,还可以考虑使用注解配置或者Spring...
在完成上述步骤后,系统将自动生成 HibernateSessionFactory.java 和 hibernate.cfg.xml 文件。然后,在 MyEclipse Datebase Explorer 中选中所有表,点击右键,选择 Hibernate Reverse Enginnering,选中目录存放...
在Java开发中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者使用面向对象...这个过程涉及到Java反射、XML处理以及对Hibernate映射机制的理解,对于深入掌握Java与数据库的交互具有重要的实践意义。
在这个项目中,所有配置都采用XML文件,虽然这种方式相对直观,但随着项目的扩大,XML配置文件可能会变得庞大且难以维护。现代开发中,更倾向于使用注解配置或者Spring Boot的自动配置来简化配置过程。 总结来说,...
首先,我们需要了解一个基本的Hibernate映射文件结构: ```xml <hibernate-mapping> <!-- 映射类的属性 --> </hibernate-mapping> ``` 这里的`<class>`标签表示映射到特定的Java类,其属性`name`指定了对应的...
这个压缩包中的"Hibernate映射工具"可能是为了帮助开发者更方便地管理和处理这些映射关系。 XML在Hibernate中扮演着关键角色,它是定义对象-关系映射(ORM)的主要方式。XML文件,通常以`.hbm.xml`为扩展名,包含...
针对hibernate关系映射进行了一个总结,包含xml配置形式和@注解配置形式,one-to-many,one-to-noe,many-to-one,many-to-many等单方向的配置和双方都配置的事例
Hibernate通过XML或注解方式将Java类与数据库表进行映射,使得开发者可以使用面向对象的方式来处理数据库。然而,手动编写这些映射文件可能会耗费大量时间,因此“Hibernate 映射文件自动生成”是一个非常实用的功能...
Hibernate映射文件是XML格式的文件,它定义了数据库表与Java实体类之间的对应关系,包括字段映射、主键策略、关联关系等。映射文件让开发者无需编写SQL语句,就能通过Java对象进行数据库操作。 2. **MyEclipse ...
首先,理解Hibernate映射文件(.hbm.xml)的作用。这些文件是XML文档,它们定义了数据库表与Java类之间的映射关系,包括字段对应、主键设置、关联关系等。通过这些映射文件,Hibernate可以自动处理对象的持久化操作...
Hibernate映射文件,通常以`.hbm.xml`为扩展名,是Hibernate用来定义Java类与数据库表之间关系的配置文件。它包含了关于实体类与数据库表的字段对应、主键生成策略、关联关系等信息。通过这些映射文件,Hibernate...
在XML配置文件`hibernate.cfg.xml`中,你可以配置数据库连接信息、实体类的映射等。此外,实体类可以通过`@Entity`注解标识,属性通过`@Column`等注解定义数据库列的映射。 SSM(Spring、SpringMVC、MyBatis)是另...