- 浏览: 86120 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
-
ssy341:
说的简单了点,和官网的文档差不多,多文件上传也不是很好,不过可 ...
jQuery插件AjaxFileUpload文件上传实现Javascript多文件上传功能 -
蓝凝幽偌:
有没有jar包?
org.apache.commons.net.ftp.FTPClient 的简单用法 -
tinguo002:
在这里缓缓走过,很为楼主钻研精神感动,也感谢楼主分享。
关于Struts2资源文件的配置
Hibernate 一对多外键双向关联
一、模型介绍
一个人(Person)对应多个地址(Address)。
二、实体(省略getter、setter方法)
public class Person1nfk_sx implements Serializable {
private int personid;
private String name;
private int age;
private Set addresses=new HashSet();
public class Address1nfk_sx implements Serializable {
private int addressid;
private String addressdetail;
private Person1nfk_sx person1nfkSx;
三、表模型
mysql> desc person_1nfk_sx;
+----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+----------------+
| personid | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(255) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
+----------+--------------+------+-----+---------+----------------+
mysql> desc address_1nfk_sx;
+---------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+--------------+------+-----+---------+----------------+
| addressid | int(11) | NO | PRI | NULL | auto_increment |
| addressdetail | varchar(255) | YES | | NULL | |
| personid | int(11) | NO | MUL | | |
+---------------+--------------+------+-----+---------+----------------+
四、生成的SQL脚本
/* Formatted on 2007/08/22 17:42 (QP5 v5.50) */
CREATE TABLE `address_1nfk` (
`addressid` int(11) NOT NULL auto_increment,
`addressdetail` varchar(255) default NULL,
`personid` int(11) default NULL,
PRIMARY KEY (`addressid`),
KEY `FK9B93456DA6D6C1F5` (`personid`),
CONSTRAINT `FK9B93456DA6D6C1F5` FOREIGN KEY (`personid`) REFERENCES `person_1nfk` (`personid`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
/* Formatted on 2007/08/22 17:42 (QP5 v5.50) */
CREATE TABLE `person_1nfk` (
`personid` int(11) NOT NULL auto_increment,
`name` varchar(255) default NULL,
`age` int(11) default NULL,
PRIMARY KEY (`personid`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
五、映射方法
<hibernate-mapping>
<class name="com.lavasoft.sx._1_n_fk.Person1nfk_sx" table="PERSON_1nfk_sx">
<id name="personid">
<generator class="identity"/>
</id>
<property name="name"/>
<property name="age"/>
<!--映射集合属性,关联到持久化类-->
<set name="addresses" inverse="true" cascade="all">
<!--column用于指定外键列名-->
<key column="personid" not-null="true"/>
<!--映射关联类-->
<one-to-many class="com.lavasoft.sx._1_n_fk.Address1nfk_sx"/>
</set>
</class>
</hibernate-mapping>
<hibernate-mapping>
<class name="com.lavasoft.sx._1_n_fk.Address1nfk_sx" table="ADDRESS_1nfk_sx">
<id name="addressid">
<generator class="identity"/>
</id>
<property name="addressdetail"/>
<!--映射关联属性,column属性指定外键列名-->
<many-to-one name="person1nfk"
class="com.lavasoft.sx._1_n_fk.Person1nfk_sx"
fetch="select"
cascade="save-update">
<column name="personid" not-null="true"/>
</many-to-one>
</class>
</hibernate-mapping>
六、测试方法
public class Test_1nfk_sx {
public static void main(String[] args){
Address1nfk_sx add1=new Address1nfk_sx();
Address1nfk_sx add2=new Address1nfk_sx();
Person1nfk_sx p=new Person1nfk_sx();
add1.setAddressdetail("郑州市经三路");
add2.setAddressdetail("合肥市宿州路");
p.setName("wang");
p.setAge(30);
p.getAddresses().add(add1);
p.getAddresses().add(add2);
add1.setPerson1nfk(p);
add2.setPerson1nfk(p);
Session session= HibernateUtil.getCurrentSession();
Transaction tx=session.beginTransaction();
session.save(p);
session.saveOrUpdate(add1);
session.saveOrUpdate(add2);
tx.commit();
HibernateUtil.closeSession();
}
}
七、测试结果
1) :正常保存.
session.save(p);
session.saveOrUpdate(add1);
session.saveOrUpdate(add2);
Hibernate: insert into PERSON_1nfk_sx (name, age) values (?, ?)
Hibernate: insert into ADDRESS_1nfk_sx (addressdetail, personid) values (?, ?)
Hibernate: insert into ADDRESS_1nfk_sx (addressdetail, personid) values (?, ?)
本文出自 “熔 岩” 博客,转载请与作者联系!
一、模型介绍
一个人(Person)对应多个地址(Address)。
二、实体(省略getter、setter方法)
public class Person1nfk_sx implements Serializable {
private int personid;
private String name;
private int age;
private Set addresses=new HashSet();
public class Address1nfk_sx implements Serializable {
private int addressid;
private String addressdetail;
private Person1nfk_sx person1nfkSx;
三、表模型
mysql> desc person_1nfk_sx;
+----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+----------------+
| personid | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(255) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
+----------+--------------+------+-----+---------+----------------+
mysql> desc address_1nfk_sx;
+---------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+--------------+------+-----+---------+----------------+
| addressid | int(11) | NO | PRI | NULL | auto_increment |
| addressdetail | varchar(255) | YES | | NULL | |
| personid | int(11) | NO | MUL | | |
+---------------+--------------+------+-----+---------+----------------+
四、生成的SQL脚本
/* Formatted on 2007/08/22 17:42 (QP5 v5.50) */
CREATE TABLE `address_1nfk` (
`addressid` int(11) NOT NULL auto_increment,
`addressdetail` varchar(255) default NULL,
`personid` int(11) default NULL,
PRIMARY KEY (`addressid`),
KEY `FK9B93456DA6D6C1F5` (`personid`),
CONSTRAINT `FK9B93456DA6D6C1F5` FOREIGN KEY (`personid`) REFERENCES `person_1nfk` (`personid`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
/* Formatted on 2007/08/22 17:42 (QP5 v5.50) */
CREATE TABLE `person_1nfk` (
`personid` int(11) NOT NULL auto_increment,
`name` varchar(255) default NULL,
`age` int(11) default NULL,
PRIMARY KEY (`personid`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
五、映射方法
<hibernate-mapping>
<class name="com.lavasoft.sx._1_n_fk.Person1nfk_sx" table="PERSON_1nfk_sx">
<id name="personid">
<generator class="identity"/>
</id>
<property name="name"/>
<property name="age"/>
<!--映射集合属性,关联到持久化类-->
<set name="addresses" inverse="true" cascade="all">
<!--column用于指定外键列名-->
<key column="personid" not-null="true"/>
<!--映射关联类-->
<one-to-many class="com.lavasoft.sx._1_n_fk.Address1nfk_sx"/>
</set>
</class>
</hibernate-mapping>
<hibernate-mapping>
<class name="com.lavasoft.sx._1_n_fk.Address1nfk_sx" table="ADDRESS_1nfk_sx">
<id name="addressid">
<generator class="identity"/>
</id>
<property name="addressdetail"/>
<!--映射关联属性,column属性指定外键列名-->
<many-to-one name="person1nfk"
class="com.lavasoft.sx._1_n_fk.Person1nfk_sx"
fetch="select"
cascade="save-update">
<column name="personid" not-null="true"/>
</many-to-one>
</class>
</hibernate-mapping>
六、测试方法
public class Test_1nfk_sx {
public static void main(String[] args){
Address1nfk_sx add1=new Address1nfk_sx();
Address1nfk_sx add2=new Address1nfk_sx();
Person1nfk_sx p=new Person1nfk_sx();
add1.setAddressdetail("郑州市经三路");
add2.setAddressdetail("合肥市宿州路");
p.setName("wang");
p.setAge(30);
p.getAddresses().add(add1);
p.getAddresses().add(add2);
add1.setPerson1nfk(p);
add2.setPerson1nfk(p);
Session session= HibernateUtil.getCurrentSession();
Transaction tx=session.beginTransaction();
session.save(p);
session.saveOrUpdate(add1);
session.saveOrUpdate(add2);
tx.commit();
HibernateUtil.closeSession();
}
}
七、测试结果
1) :正常保存.
session.save(p);
session.saveOrUpdate(add1);
session.saveOrUpdate(add2);
Hibernate: insert into PERSON_1nfk_sx (name, age) values (?, ?)
Hibernate: insert into ADDRESS_1nfk_sx (addressdetail, personid) values (?, ?)
Hibernate: insert into ADDRESS_1nfk_sx (addressdetail, personid) values (?, ?)
本文出自 “熔 岩” 博客,转载请与作者联系!
发表评论
-
java编程思想final的理解
2015-03-06 13:38 328根据上下文环境,java的关键字final也存在着细微的区别, ... -
PDF2SWF中文字符集解决方案
2014-02-26 15:12 800转自:http://www.cnblogs.com/liver ... -
Runtime.getRuntime().exec() 输出流阻塞的解决方法
2014-02-26 09:40 1824转自:http://blog.csdn.net/xiaoani ... -
笔记(不用老搜索了)
2013-07-17 16:16 0下面代码则执行了subgo()函数, <a href ... -
利用LinkedBlockingQueue实现生产者-消费者模式
2013-06-05 16:09 672由于LinkedBlockingQueue 实现是线程安全的, ... -
加密123
2013-05-08 22:35 795/** * 加密传输时的密码 * @author weirhp ... -
jsoup解析
2013-04-28 15:31 652http://www.ibm.com/developerwor ... -
java线程管理利器:java.util.current的用法举例
2012-12-05 15:42 980DK5中增加了Doug Lea的并发库,这一引进给java线程 ... -
Tomcat - 解决which must be escaped when used within the value错误
2012-11-19 15:17 632http://www.cnblogs.com/javadu/a ... -
Java POI Word 写文档
2012-11-09 09:19 8071 package apache.poi; 2 3 ... -
使用COS组件实现文件上传
2012-06-15 11:25 1461转自:http://blog.csdn.net/jadyer/ ... -
Java Annotation(1)
2011-06-19 09:48 637作者:曾巧(numenzq) 摘要 Annotation( ... -
关于request得到路径的几种方法
2011-06-08 15:43 922request.getRequestURI() /jque ... -
JAVA EXCEL API 简介
2011-04-18 16:32 701转自:http://www.ibm.com/dev ... -
Hibernate 多对多双向关联
2011-03-21 11:09 598Hibernate 多对多双向关联 一、模型介绍 多个 ... -
Hibernate 一对多连接表双向关联
2011-03-21 11:09 741Hibernate 一对多连接表双向关联 一、模型介绍 ... -
Hibernate 一对一主键双向关联
2011-03-21 11:07 685Hibernate 一对一主键双向关联 一对一主键映射在一 ... -
Hibernate 一对一外键双向关联
2011-03-21 11:07 619Hibernate 一对一外键双向关联 一对一外键关联是一 ... -
Hibernate 多对多单向关联
2011-03-21 11:06 614Hibernate 多对多单向关联 一、模型介绍 多个人( ... -
Hibernate 多对一连接表单向关联
2011-03-21 11:05 634Hibernate 多对一连接表单向关联 一、模型介绍 ...
相关推荐
Hibernate 一对一外键单向关联 Hibernate 一对一主键单向关联 Hibernate 一对一连接表单向关联 Hibernate 一对多外键单向...Hibernate 一对多外键双向关联 Hibernate 一对多连接表双向关联 Hibernate 多对多双向关联
Hibernate关联关系映射 单向关联 │ ├─ 一对一外键单向关联 │ ├─ 一对一主键单向关联 │ ├─ 一对一连接表单向关联 ...├─ 一对多外键双向关联 ├─ 一对多连接表双向关联 └─ 多对多双向关联
hibernate外键实现一对一双向关联关系源码
在本文中,我们将详细介绍Hibernate一对一唯一外键关联映射的概念、配置方法和实践应用。 一对一唯一外键关联映射的概念 在Hibernate中,一对一唯一外键关联映射是指两个实体之间的关联关系,其中一个实体作为外键...
NULL 博文链接:https://paladin1988.iteye.com/blog/1657564
NULL 博文链接:https://cdxs2.iteye.com/blog/1930749
本篇将详细讲解如何在Hibernate中实现一对多的双向关联,并提供相关的代码示例。 在关系型数据库中,一对多关联是指一个表的记录可以对应另一个表的多个记录。在Hibernate中,这种关系可以通过在实体类和映射文件中...
hibernate一对多双向自连接关联映射 15 hibernate多对多关联映射(单向User---->Role) 19 hibernate多对多关联映射(双向User<---->Role) 20 Hibernate的继承关系 21 每棵继承树映射成一张表(hibernate_extends_1) 22 ...
Hibernate一对多关联映射学习小结 Hibernate是一种流行的Java持久层框架,它提供了强大的对象关系映射(ORM)功能,能够将Java对象与关系数据库中表之间建立映射关系。Hibernate的关联映射是其核心功能之一,可以将...
015 一对多关联映射 双向 016 多对多关联映射 单向 017 多对多关联映射 双向 018 关联映射文件中标签中的 lazy(懒加载)属性 019 关联映射文件中集合标签中的 lazy(懒加载)属性 020 、单端关联上的 lazy(懒加载)属性 ...
此外,多对一关联实际上与一对多关联非常类似,唯一的区别在于外键的方向。在实际应用中,这种关联经常用于表示一个教师有多门课程,但每门课程只有一个任教教师。 总结来说,Hibernate的关联关系映射允许开发者...
使用@OneToMany批注可定义一对多关联,一对多关联可以是双向关联。 在EJB3规范中多对一这端几乎总是双向关联中的主体(owner)端,而一对多这端关联批注为@OneToMany(mappedBy...) @Entity Public class Troop{ @...
在Hibernate框架中,双向一对多关联映射是常见的对象关系映射(ORM)方式,用于在Java对象模型中表示数据库中的两个实体之间的多对一关系。在这个场景中,"一"端通常指的是一个实体可以拥有多个另一个实体的实例,而...
以下是对Hibernate一对多映射配置的详解: 一、XML文件配置 1. 单向关联 在这种配置中,关系只在一个方向上定义,例如User类有多个Account。在User的配置文件中,不直接声明与Account的关联,而是在Account的配置...
本文将详细讲解一对多的单向和双向关联映射。 首先,我们来看**一对多单向关联映射**。在这个关系中,一方(如班级)知道另一方(如学生),但另一方并不知道这一方。在对象模型中,这通常表现为一个类(如Classes...
自己记录的学习笔记,内容很详细,有代码,包括:一对多双向关联关系、一对多双向自身关联关系、一对一关联关系(主键关联、外键关联)、一对多与一对一结合、多对多关联关系、Map、Set、List与Bag映射关系、查询...
在Hibernate中,关系注解用于在实体类中定义不同类型的数据库关系,如一对一、一对多、多对多等。以下是关于Hibernate关系注解的详细说明: 1. **一对一外键关联映射(单向)** 使用`@OneToOne`注解实现一对一关系...
- 这种关联实际上是一对多关联的反向视角,配置方式与一对多的单向关联类似,只是角色互换。 4. **多对多关联映射** - **中间表关联**:多对多关联通常需要一个中间表来存储两个实体的连接信息。在映射文件中,...
Hibernate 注解映射支持多种关联关系的映射,包括多对一、一对多、双向一对多和双向一对一。 * 多对一映射:使用 @ManyToOne 和 @JoinColumn 注解,指定关联列。 * 一对多映射:使用 @OneToMany 注解,默认会使用...
1:N(一对多)关联表示一个实体可以与多个其他实体相对应,例如一个部门可以有多个员工。在Hibernate中,通常使用`<set>`或`<list>`标签来表示这种关系。不过,示例中并未展示1:N的具体实现,但在实际应用中,可以为...