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>
相关推荐
Hibernate XML配置表映射实例
让Hibernate同时支持xml和注解两种映射方式
Middlegen-Hibernate-r5 Hibernate关系映射XML生成工具,MYSQL数据库的生成配置文件已经做好。
hibernate多对一映射(XML)版
build.xml 手写自动生成Hibernate映射文件和配置文件源代码
请输入包的名称和映射文件需要放到的文件夹之后运行CreateTableXml里的main方法,就可以自动生成映射文件了。记着刷新文件夹,要不然是看不到的。 当然只是一些基础的属性。对于一些比较复杂,还是需要自己来修改的...
主要介绍通过Hibernate不用别的插件,逆向生成实体类的方法,包括标签注解映射和hbm.xml文件映射两种
Hibernate映射工具,能获得xml,jav。oracle10测试通过,其他数据库不保证能用。
hibernate的中关系映射分为一对一、一对多、多对一、多对多,其中有单双向之分。而一对一还有主键和外键区分。一共是九种。分别用xml配置文件和annotation实现。annotation的版本没有写测试程序,见谅。
针对hibernate关系映射进行了一个总结,包含xml配置形式和@注解配置形式,one-to-many,one-to-noe,many-to-one,many-to-many等单方向的配置和双方都配置的事例
hibernate单向多对多映射(XML版)
hibernate实体映射文件字段设置默认值
通过xml文件配置数据库连接信息 PO类和数据库表的映射关系通过xml文件配置 模拟Hibernate中Session类的save()、delete()、update()和get()方法
根据实体类生成简单的Hibernate映射文件,对不用Myeclipse的童鞋还是有用
NULL 博文链接:https://yangjb.iteye.com/blog/1186724
在hibernate中,通常配置对象关系映射关系有两种,一种是基于xml的方式,另一种是基于annotation的注解方式,熟话说,萝卜青菜,可有所爱,每个人都有自己喜欢的配置方式,这个是xml配置的例子
hibernate 对于数据库的映射语句 sqlserver以及mysql映射语句都有 调试过能用 尽情下载吧
Hibernate开发过程(单一映射体) 1创建持久类XXXX.java(要有oid字段:唯一且不具有业务含义;所有属性都有getter/setter方法;空的构造方法;不含oid的构造方法) 2创建映射文件XXXX.hbm.xml(包,类,id,字段) 3...
教你如何用Hibernate生成映射文件和实体类,简单方便。
Hibernate双向一对一关联映射(注解版)