hibernate文件配置【原创】

栏目: Hibernate · 发布时间: 2年前

来源: blog.yayuanzi.com

内容简介:集合映射public class User {private int id;

本文转载自:https://blog.yayuanzi.com/24277.html,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有。

集合映射

public class User {
private int id;
private String password;
private String name;
private Set<String> addressSet;
//setter+getter提供set get方法
}

public class User {

private int id;

private String password;

private String name;

private Set<String> addressSet;

//setter+getter提供set get方法

}

<hibernate-mapping package=”collection”>

<class name=”User” table=”t_user”>

<id name=”id” column=”id”>

<generator class=”native”></generator>

</id>

<property name=”password” column=”password”></property>

<property name=”name” column=”name”></property>

<set name=”addressSet” table=”t_address”>

<key column=”user_id”></key>

<element column=”address” type=”string”></element>

</set>

</class>

</hibernate-mapping>

一对多

创建两个对象,在一的一方维护多的一方的集合

注意:两个对象必须都有映射文件

在一的一方配置

<hibernate-mapping package=”one2many”>

<class name=”User” table=”t_user”>

<id name=”id” column=”id”>

<generator class=”native”></generator>

</id>

<property name=”password” column=”password”></property>

<property name=”name” column=”name”></property>

<set name=”address” table=”t_address”>

<key column=”user_id”></key>

<one-to-many class=”Address”/>

</set>

</class>

</hibernate-mapping>

多对一

创建两个对象,在多的一方维护多的一方的对象

注意:两个对象必须都有映射文件

在多的一方配置

<hibernate-mapping package=”one2many2one”>

<class name=”Address” table=”t_address”>

<id name=”id” column=”id”>

<generator class=”native”></generator>

</id>

<property name=”address” column=”address”></property>

<property name=”city” column=”city”></property>

<property name=”country” column=”country”></property>

<many-to-one name=”user” column=”user_id” class=”User”></many-to-one>

</class>

双向配置

即一对多,多对一

inverse:

true不维护关系

false翻转

注意:只能在没有外键的一方放弃维护关系

放弃维护关系会出现的问题

添加时,因为一的一方不维护关系,多的一方的外键值null

删除时,因为一的一方不维护关系,多的一方还在引用一的一方的主键删不了,违法外键约束

级联操作

save-update:级联修改与保存

delete:级联删除

delete-orphan:孤儿删除,当多的一方没有任何外键应用,责备删除

all:相当与save-update ,delete

all-delete-orphan:相当与save-update ,delete delete-orphan

注意:delete不能双方同时使用,不然会造成数据丢失

多对多

多对多的表设计:双方的javaben中各自维护对方的集合

配置

<hibernate-mapping package=”a_many2many”>

<class name=”Student” table=”t_student”>

<id name=”id” column=”id”>

<generator class=”native”></generator>

</id>

<property name=”name” column=”name”></property>

<property name=”sex” column=”sex”></property>

<set name=”teachers” table=”t_student_teacher” inverse=”true”>

<key column=”s_id” ></key>

<many-to-many class=”Teacher” column=”t_id” ></many-to-many>

</set>

</class>

</hibernate-mapping>

<hibernate-mapping package=”a_many2many”>

<class name=”Teacher” table=”t_teacher”>

<id name=”id” column=”id”>

<generator class=”native”></generator>

</id>

<property name=”name” column=”name”></property>

<property name=”sex” column=”sex”></property>

<set name=”students” table=”t_student_teacher” inverse=”false” cascade=”all”>

<key column=”t_id” ></key>

<many-to-many class=”Student” column=”s_id” ></many-to-many>

</set>

</class>

</hibernate-mapping>

注意:开发时一般设置一方的放弃维护关系

一对一关系

双方的javaben中各自维护对方的对象

方式一:在任意一方维护一个外键(特殊的多对多,指定外键值唯一)

注意:这种配置只能在外键所在的一方维护关系

<hibernate-mapping package=”one2one”>

<class name=”Company” table=”t_company”>

<id name=”id” column=”id”>

<generator class=”native”></generator>

</id>

<property name=”name” column=”name”></property>

<one-to-one name=”address” class=”Address” property-ref=”company”></one-to-one>

</class>

</hibernate-mapping>

<hibernate-mapping package=”one2one”>

<class name=”Address” table=”t_address”>

<id name=”id” column=”id”>

<generator class=”native”></generator>

</id>

<property name=”address” column=”address”></property>

<many-to-one name=”company” column=”c_id” class=”Company” unique=”true” cascade=”all”></many-to-one>

</class>

</hibernate-mapping>

方式二:在一方指定既是主键又是外键

<hibernate-mapping package=”copyone2one”>

<class name=”Company” table=”t_company”>

<id name=”id” column=”id”>

<generator class=”native”></generator>

</id>

<property name=”name” column=”name”></property>

<one-to-one name=”address” class=”Address” ></one-to-one>

</class>

</hibernate-mapping>

<hibernate-mapping package=”copyone2one”>

<class name=”Address” table=”t_address”>

<id name=”id” column=”id”>

<generator class=”foreign”>

<param name=”property”>company</param>

</generator>

</id>

<property name=”address” column=”address”></property>

<one-to-one name=”company” class=”Company” constrained=”true”></one-to-one>

</class>

</hibernate-mapping>

转载时请注明出处及相应链接,本文永久地址:https://blog.yayuanzi.com/24277.html

hibernate文件配置【原创】

hibernate文件配置【原创】 微信打赏

hibernate文件配置【原创】 支付宝打赏

感谢您对作者Alex的打赏,我们会更加努力!    如果您想成为作者,请点我


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

关注码农网公众号

关注我们,获取更多IT资讯^_^


为你推荐:

相关软件推荐:

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

人件(原书第3版)

人件(原书第3版)

[美] Tom DeMarco、[美] Timothy Lister / 肖然、张逸、滕云 / 机械工业出版社 / 2014-8 / 69.00元

在软件管理领域,很少有著作能够与本书媲美。作为经久不衰的畅销书,本书深刻地洞察到软件开发的最大问题不在于技术,而在于人。人的因素并不容易解决,一旦解决了,你将更有可能获得成功。 本书是软件管理领域的传奇经典,被誉为“对美国软件业影响最大的一本书”。全书从管理人力资源、创建健康的办公环境、雇用并留用正确的人、高效团队形成、改造企业文化和快乐工作等多个角度阐释了如何思考和管理软件开发的最大问题—......一起来看看 《人件(原书第3版)》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具