Hibernate实体映射的几个步骤
1、写注释
格式为:?属性,表达的是本对象与?的?关系。
例:“department属性,本对象与Department的多对一”
2、拷模板:
多对一 | <many-to-one name=“” class=“” column=“”/> |
一对多(Set) |
<set name=""> <key column=""></key> <one-to-many class=""/> </set>
|
多对多(Set) |
<set name="" table=""> <key column=""></key> <many-to-many class="" column=""/> </set> |
3、填空:
name属性:属性名(注释中的第1问号)
class属性:关联的实体类型(注释中的第2个问号)
column属性:
<many-to-one column="..">:一般可以写成属性名加Id后缀,如属性为department,则column值写成departmentId。
一对多中的<key column="..">:从关联的对方(对方是多对一)映射中把column值拷贝过来。
多对多中的<key column=“..”>:一般可以写成本对象的名加Id后缀,如本对象名为User,则写为userId。
多对多中的<many-to-many column=“..”>:一般可以写为关联对象的名称加Id后缀。
举例:
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="com.yingjun"> <class name="Role" table="t_role"> <id name="id"> <generator class="native"/> </id> <property name="name"/> <property name="description"/> <!-- users属性,本类与User的多对多 --> <set name="users" table="t_user_role"> <key column="roleId"></key> <many-to-many class="User" column="userId"></many-to-many> </set> </class> </hibernate-mapping>
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="com.yingjun"> <class name="User" table="t_user"> <id name="id"> <generator class="native"/> </id> <property name="loginName"/> <property name="password"/> <property name="name"/> <property name="gender" /> <property name="phoneNumber"/> <property name="email"/> <property name="description"/> <!-- department属性,本类与Department的多对一 --> <many-to-one name="department" class="Department" column="departmentId"></many-to-one> <!-- roles属性,本类与Role的多对多 --> <set name="roles" table="t_user_role"> <key column="userId"></key> <many-to-many class="Role" column="roleId"></many-to-many> </set> </class> </hibernate-mapping>
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="com.yingjun"> <class name="Department" table="t_department"> <id name="id"> <generator class="native" /> </id> <property name="name" /> <property name="description" /> <!-- users属性,本类与User的一对多 --> <set name="users"> <key column="departmentId"></key> <one-to-many class="User" /> </set> <!-- parent属性,本类与Department(上级)的多对一 --> <many-to-one name="parent" class="Department" column="parentId"></many-to-one> <!-- children属性,本类与Department(下级)的一对多 --> <set name="children"> <key column="parentId"></key> <one-to-many class="Department" /> </set> </class> </hibernate-mapping>
相关推荐
在本实例中,我们将深入探讨如何使用XML配置文件来实现Hibernate的表映射。 首先,Hibernate的XML配置文件通常被称为`hibernate.cfg.xml`,它是连接数据库、定义SessionFactory等核心设置的地方。在这个文件中,...
Hibernate支持两种主要的映射方式:XML映射文件和注解映射。然而,默认情况下,一个项目只能选择其中一种方式进行配置。但有时候,根据项目需求,可能需要同时使用XML和注解映射。在这种情况下,我们需要进行一些...
Middlegen是早期流行的一款Hibernate工具,它可以自动从数据库模式生成Hibernate的XML映射文件。用户只需要指定数据库连接信息,Middlegen就能够解析数据库中的表结构,并生成对应的Hibernate映射文件。对于MySQL...
本主题将深入探讨Hibernate框架下,如何通过XML映射文件和注解进行对象关系映射的配置,包括实体类的设计、字段映射、关联关系的建立,并可能结合具体代码实例进行解析,帮助读者理解并掌握这两种映射方式的使用。...
通过以上步骤,我们不仅能够利用Hibernate逆向生成实体类,还可以灵活地选择注解映射或hbm.xml映射的方式。这种方式极大地简化了开发过程,提高了开发效率。对于不同的项目需求,可以根据实际情况选择合适的映射方式...
build.xml 手写自动生成Hibernate映射文件和配置文件源代码
通过以上步骤,你已经成功地将Spring和Hibernate整合在一起,使用全XML配置方式实现了数据访问层。这种方式虽然较为繁琐,但能清晰地分离各层职责,便于管理和维护。在实际项目中,还可以考虑使用注解配置或者Spring...
总的来说,这个压缩包提供的工具和资源可以帮助开发者理解并实践Hibernate的XML映射和Java编程,特别是在Oracle10g数据库上的应用。然而,为了确保在其他数据库上运行,需要对工具进行适当的适配和测试,或者使用更...
Hibernate是一个对象关系映射(ORM)框架,用于Java环境,它提供了数据持久化的功能,让开发者可以使用面向对象的方式来操作数据库。XML(可扩展标记语言)是一种标记语言,用于存储和传输数据。在数据库领域,XML常...
请输入包的名称和映射文件需要放到的文件夹之后运行CreateTableXml里的main方法,就可以自动生成映射文件了。记着刷新文件夹,要不然是看不到的。 当然只是一些基础的属性。对于一些比较复杂,还是需要自己来修改的...
2. **XML映射文件**: - 对于`Student`实体,我们需要在对应的`.hbm.xml`文件中定义多对一的关系。使用`<many-to-one>`标签,指定关联的实体类和外键字段。例如: ```xml ``` 这里,`name`属性对应Java类中的...
在Hibernate框架中,实体映射文件(通常为`.hbm.xml`)用于定义Java对象与数据库表之间的映射关系。这其中包括了属性到数据库表列的映射、主键生成策略、以及一些高级特性如延迟加载等。在某些情况下,我们可能希望...
XDoclet是基于Javadoc的元数据处理工具,它通过读取Java源代码中的特定注解,自动生成各种配置文件,包括Hibernate的.hbm.xml映射文件、EJB组件的部署描述符等。使用XDoclet,开发者无需手动创建和维护这些配置文件...
这种映射方式简化了数据访问,并提高了代码的可读性和可维护性。 ### 配置数组映射 在Hibernate的映射文件(hbm.xml)中,我们可以使用`<array>`元素来配置数组映射。基本结构如下: ```xml ``` - `name`...
关于工具的使用,Hibernate提供了hibernate.cfg.xml配置文件或基于Java的配置方式来设置数据库连接参数、实体类扫描路径等。同时,它还提供了SessionFactory、Session、Transaction等接口,供开发者进行数据库操作。...
在Hibernate的映射文件(.hbm.xml)中,我们通常使用`<set>`, `<list>`, `<map>`等标签来定义集合映射。每个标签都有对应的属性,例如: - `name`: 对象属性名。 - `table`: 所映射的数据库表名。 - `inverse`: ...
XML映射文件是 Hibernate 了解这些实体及其关系的关键。 1. **实体类**: 在这个场景下,我们可能有两个实体类,如`Student`和`Course`。每个实体类都有自己的属性,并且需要包含对应的数据库表字段。例如,`...
但值得一提的是,Hibernate还提供了HQL(Hibernate Query Language)和QBC(Query By Criteria)两种查询方式,它们是面向对象的查询语言,与SQL类似,但更接近Java编程思维,这与XML映射文件配合使用,使得数据库...