- 浏览: 213722 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (244)
- java (23)
- java多线程 (7)
- 综合 (1)
- oracle10g (24)
- div+css (1)
- Flex (27)
- java Nio (1)
- java设计模式 (8)
- struts2 (10)
- spring3.0 (5)
- SSH (9)
- dwr (5)
- hibernate3.6 (17)
- dom4j (1)
- sql优化 (5)
- Quartz任务调度框架 (1)
- AOP (3)
- JavaScript (18)
- jquery (3)
- JSF (9)
- ruby (1)
- 正则表达式 (1)
- 明日准备 (2)
- eclipse (3)
- gvim (1)
- CMS (1)
- linux (6)
- 杂 (4)
- java 设计模式 (1)
- MySql (10)
- JBPM (4)
- JSP技术 (1)
- Mybatis And Ibatis (2)
- 经验之谈 (10)
- WebService (1)
- java分布式(高性能,高可用,可伸缩) (0)
- springMvc (2)
- redis (0)
- ant (1)
- Nutz (6)
- 配置管理 (0)
- css+div (1)
- eChars (1)
- angularJs (1)
- D3 (3)
- Scala (1)
最新评论
-
Cobain_LI:
Cobain_LI 写道学习了,之前一直都没注意到有这样的问题 ...
js面向对象3--更简单的原型模式已经带来的问题以及解决办法 -
Cobain_LI:
Cobain_LI 写道学习了,之前一直都没注意到有这样的问题 ...
js面向对象3--更简单的原型模式已经带来的问题以及解决办法 -
Cobain_LI:
有个小失误,144和147行多了两个花括号
js面向对象2--js中工厂模式的演化(重要,详细) -
Cobain_LI:
学习了,之前一直都没注意到有这样的问题
js面向对象3--更简单的原型模式已经带来的问题以及解决办法 -
YTT1121:
有网络拓扑发现的源代码么,或者您会编写么?可以有偿求购,搞科研 ...
flex 之twaver1--简单网络拓扑实现
多对一关系实现两种方法:
1,在多的一段添加1的主键作为外键。
2,多的一段不添加任何外键,重新建一个表来实现多对一的关联。
下面是实例:
1,Person类:
2,Address类:
3,Person映射文件
5,测试程序(不管使用哪种方式,程序的访问方式不会改变)
1,在多的一段添加1的主键作为外键。
2,多的一段不添加任何外键,重新建一个表来实现多对一的关联。
下面是实例:
1,Person类:
package com.supan.bean; public class Person { //因为由人访问其地址,所有人必须有一个地址的引用 private Integer id; private String name; private int age; private Address address; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Address getAddress() { return address; } public void setAddress(Address address) { this.address = address; } }
2,Address类:
package com.supan.bean; public class Address { //程序无须从address访问Person属性,所以Address无须增加Person属性 private Integer addressId; private String addressDetail; public Address() { } public Address(String addressDetail){ this.addressDetail = addressDetail; } public Integer getAddressId() { return addressId; } public void setAddressId(Integer addressId) { this.addressId = addressId; } public String getAddressDetail() { return addressDetail; } public void setAddressDetail(String addressDetail) { this.addressDetail = addressDetail; } }
3,Person映射文件
<class name="Person" dynamic-update="true" table="myperson" dynamic-insert="true"> <id name="id" column="id" type="integer"> <generator class="native"/> </id> <property name="name" type="string" column="name" access="property" length="40"/> <property name="age" type="integer" column="age" access="property"/> <!-- 第一种方法:实现外键的方法来映射 cascase可以让person在保存自己前自动保存address持久对象,如果没有 这个属性,在保存person会手动的保存address <many-to-one name="address" class="Address" column="address_id"> </many-to-one> --> <!-- 第二种方法:使用重建关联表的方法来实现 多对一的另一种实现方式:使用连接表,即不再多的一段添加一的外键,而是 重新创建一个新表,这个表中存放连个字段一个是多的一段的主键,一个是1的 一段的主键。 --> <join table="person_address"> <!-- 映射链接表中参照本表主键的外键列 --> <key column="person_id"></key> <many-to-one name="address" cascade="all" class="Address" column="address_id"> </many-to-one> </join> </class> 4,address的映射文件: <class name="Address" dynamic-update="true" dynamic-insert="true"> <id name="addressId" column="address_id" type="integer"> <generator class="native"/> </id> <property name="addressDetail" type="string" column="addressDetail" access="property" length="240"/> </class>
5,测试程序(不管使用哪种方式,程序的访问方式不会改变)
//Person 和 Address 是多对一的单向关联 public void testPersonSave(){ Configuration cfg = new Configuration().configure(); SessionFactory sessionFactory = cfg.buildSessionFactory(); Session session = sessionFactory.openSession(); Transaction ts = session.beginTransaction(); System.out.println("111111111111111"); Person p = new Person(); p.setName("陈超阳"); p.setAge(26); Address a = new Address("河南省汝州市"); p.setAddress(a); session.persist(a);//如果配置文件中没有指定cascade为all的话,这里需要先保存address才能保存person; session.save(p); //在Person映射文件中设置了cascade为all,表示保存person前会自动保存address的 Address a2 = new Address("广东省深圳市"); session.persist(a2); p.setAddress(a2); ts.commit(); session.close(); sessionFactory.close(); }
发表评论
-
项目中关于配置文件中密码的加密处理
2014-08-08 23:32 5950注:原创作品,转载请注明出处。 在项目中,为了项目 ... -
Hibernate 调用返回值的存储过程
2014-08-04 02:20 2763注:原创作品,转载请注明出处。 曾一度认为orac ... -
hibernate 的sqlQuery对象可以操作非映射的数据库表
2014-05-23 01:17 1022注:原创作品,分享以供交流学习,转载请注明出处。 一直 ... -
hibernate sql查询 标量,实体查询
2014-05-11 23:10 835注:原创作品,分享以供交流学习,转载请注明出处 本博文实例假 ... -
hibernate hql查询 select 语句 和 from语句
2014-05-11 21:37 3940注:原创作品,分享以 ... -
hibernate 基于cglib的 事务代理
2014-03-24 23:39 791实例:使用hibernate 事务代理完成一个事务,添 ... -
hibernate 基本事务
2014-03-24 21:45 506业务需求:增加一个人,这个人有两个地址,人是一张表, ... -
Hibernate 原生sql查询
2014-03-23 19:25 6371,Person package com.supan.bean ... -
hibernate一对多 双向 关联A(无连接表)
2014-03-17 00:27 860一,创建映射 1,多的一段 java文件中需要有一的属性,配置 ... -
hibernate多条件查询
2014-03-07 00:47 7681. Hibernate的Criteria这 ... -
javaSe中使用Hibernate
2014-03-01 18:16 457hibernate可用在javaSe中也可以用在java ... -
ssh中junit 测试 hibernate 1对多单向关联(不推荐使用这种关联)
2014-02-11 23:41 624主要介绍效率最低的一对多单向关联(实际中推荐使用一对多双向关联 ... -
hql select 子查询的属性可封装成list、具体对象,改变默认的数组类型
2014-01-22 16:35 7021,select子查询属性组成成list //把sel ... -
hql查询对象、查询属性
2014-01-22 15:34 560//查询整个对象集合 public void ... -
hibernate批量插入、删除、更新。
2014-01-22 15:09 692一:效率最不好的批量插入、更新。 //批量创建Pers ... -
hibernate基本知识1
2014-01-21 16:21 493package com.supan.test; import ...
相关推荐
多对一的配置方式有两种:(1)通过@JoinColoumn映像(2)通过关联表的方式来映像 (1) 通过@JoinColoumn映射 SRD Framework中Company,Category例子: Company: @ManyToOne @JoinColumn(name = "CATEGORY_OPTION_ID")...
7.5.1. 一对多(one to many) /多对一( many to one) 7.5.2. 一对一(one to one) 7.5.3. 多对多(many to many) 7.6. 更复杂的关联映射 8. 组件(Component)映射 8.1. 依赖对象(Dependent objects) ...
7.5.1. 一对多(one to many) /多对一( many to one) 7.5.2. 一对一(one to one) 7.5.3. 多对多(many to many) 7.6. 更复杂的关联映射 8. 组件(Component)映射 8.1. 依赖对象(Dependent objects) ...
7.5.1. 一对多(one to many) /多对一( many to one) 7.5.2. 一对一(one to one) 7.5.3. 多对多(many to many) 7.6. 更复杂的关联映射 8. 组件(Component)映射 8.1. 依赖对象(Dependent objects) ...
7.5.1. 一对多(one to many) /多对一( many to one) 7.5.2. 一对一(one to one) 7.5.3. 多对多(many to many) 7.6. 更复杂的关联映射 8. 组件(Component)映射 8.1. 依赖对象(Dependent objects) ...
7.5.1. 一对多(one to many) /多对一( many to one) 7.5.2. 一对一(one to one) 7.5.3. 多对多(many to many) 7.6. 更复杂的关联映射 8. 组件(Component)映射 8.1. 依赖对象(Dependent objects) 8.2. 在...
8.4.1. 一对多(one to many) / 多对一(many to one) 8.4.2. 一对一(one to one) 8.5. 使用连接表的双向关联(Bidirectional associations with join tables) 8.5.1. 一对多(one to many) /多对一( many ...
一对多(one to many) /多对一( many to one) 7.5.2. 一对一(one to one) 7.5.3. 多对多(many to many) 7.6. 更复杂的关联映射 8. 组件(Component)映射 8.1. 依赖对象(Dependent objects) 8.2. 在...
这种策略支持双向的一对多关联,但不支持 IDENTIFY 生成器策略,因为ID必须在多个表间共享。一旦使用就不能使用AUTO和IDENTIFY生成器。 每个类层次结构一张表 @Entity @Inheritance(strategy=InheritanceType....
7.4.1. 一对多(one to many) / 多对一(many to one) 7.4.2. 一对一(one to one) 7.5. 使用连接表的双向关联(Bidirectional associations with join tables) 7.5.1. 一对多(one to many) /多对一( many to ...
7.5.1. 一对多(one to many) /多对一( many to one) 7.5.2. 一对一(one to one) 7.5.3. 多对多(many to many) 7.6. 更复杂的关联映射 8. 组件(Component)映射 8.1. 依赖对象(Dependent objects) ...
7.1 建立多对一的单向关联关系 148 7.1.1 [many-to-one]元素的not-null属性 153 7.1.2 级联保存和更新 155 7.2 映射一对多双向关联关系 156 7.2.1 [set]元素的inverse属性 161 7.2.2 级联删除 163 7.2.3 父子...
8.5.1. 一对多(one to many) /多对一( many to one) 8.5.2. 一对一(one to one) 8.5.3. 多对多(many to many) 9. 组件(Component)映射 9.1. 依赖对象(Dependent objects) 9.2. 在集合中出现的依赖...
8.5.1. 一对多(one to many) /多对一( many to one) 8.5.2. 一对一(one to one) 8.5.3. 多对多(many to many) 9. 组件(Component)映射 9.1. 依赖对象(Dependent objects) 9.2. 在集合中出现的依赖...
一对多(one to many) /多对一( many to one) 8.5.2. 一对一(one to one) 8.5.3. 多对多(many to many) 9. 组件(Component)映射 9.1. 依赖对象(Dependent objects) 9.2. 在集合中出现的依赖对象 ...
7.5.1. 一对多(one to many) /多对一( many to one) 7.5.2. 一对一(one to one) 7.5.3. 多对多(many to many) 8. 组件(Component)映射 8.1. 依赖对象(Dependent objects) 8.2. 在集合中出现的依赖对象 ...
7.5.1. 一对多(one to many) /多对一( many to one) 7.5.2. 一对一(one to one) 7.5.3. 多对多(many to many) 7.6. 更复杂的关联映射 8. 组件(Component)映射 8.1. 依赖对象(Dependent objects) 8.2. 在...
7.1 建立多对一的单向关联关系 148 7.1.1 [many-to-one]元素的not-null属性 153 7.1.2 级联保存和更新 155 7.2 映射一对多双向关联关系 156 7.2.1 [set]元素的inverse属性 161 7.2.2 级联删除 163 7.2.3 父子...
property-ref:关联类中用于与主控类相关联的属性名,默认为关联类的主键属性名 单向一对多需在一方配置,双向一对多需在双方进行配置 8.lazy=false:被动方的记录由hibernate负责记取,之后存放在主控...
1.2.2. 单向 Set-based 的关联 ......................................... 14 1.2.3. 使关联工作 ..................................................... 15 1.2.4. 值类型的集合 ..................................