- 浏览: 260016 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (87)
- Java (6)
- Frameworks (1)
- JavaWeb (3)
- Spring (6)
- Hibernate (26)
- Maven (2)
- Plugin (1)
- Velocity (1)
- Freemarker (1)
- Spring security (18)
- Google (5)
- Guice (5)
- rmi (1)
- Annotation (1)
- Binding (1)
- commons-fileupload (3)
- fileupload (3)
- ehcache (1)
- ApplicationContext (1)
- Resource (1)
- Validator (1)
- PropertyEditor (1)
- one-to-many (5)
- cascade (2)
- MessageSource (1)
- Serialize (1)
- Serializable (1)
- delete (1)
- delete-orphan (1)
- fetch (1)
- one-to-one (1)
- join (4)
- DomainObject (1)
- CRUD (1)
- composite-element (1)
- Hibernate ORM (14)
- dynamic-insert (1)
- dynamic-update (1)
- Search (1)
- DDD (0)
- Job (0)
- element (1)
- Unique (1)
- Group (1)
- tomcat (1)
- https (1)
- mysql (1)
最新评论
-
xurunchengof:
[url][url][url][img][img][img][ ...
Spring Security 3多用户登录实现之三 验证过滤器 -
Wind_ZhongGang:
yo8237233 写道你这样的话如果上传文件超过了50000 ...
Spring集成Commons fileupload,文件上传 -
yo8237233:
你这样的话如果上传文件超过了50000000就会报异常
Spring集成Commons fileupload,文件上传 -
zhuzhiguosnail:
Wind_ZhongGang 写道lianglaiyang 写 ...
Spring Security 3多用户登录实现一 -
曾老师:
?????
Spring Security 3用户登录实现之十 用户切换
讨论一下Hibernate中对象的一对多或多对一关联关系。这里以日志与日志评论来说明这样的关系,一个日志可以有多条评论,而一条评论则只能对应一个日志。
说明一对多的双向关联。它的现实意义就是从日志的角度可以得到该日志下的多条评论,而从评论的角度则可以知道它属于某个日志。
1.Diary.java
package com.template.model; import java.util.List; /** * Created by IntelliJ IDEA. * User: Zhong Gang * Date: 11-7-20 * Time: 下午8:13 * To change this template use File | Settings | File Templates. */ public class Diary { private Integer id; private String title; private String content; private List<Comment> comments; public Diary() { } }
2.Diary.hbm.xml
<?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 default-access="field"> <class name="com.template.model.Diary" table="diary"> <id name="id" column="id" type="java.lang.Integer"> <generator class="native"/> </id> <property name="title" column="title" type="java.lang.String"/> <property name="content" column="content" type="java.lang.String"/> <bag name="comments" table="comment"> <key column="diaryid"/> <one-to-many class="com.template.model.Comment"/> </bag> </class> </hibernate-mapping>
3.Comment.java
package com.template.model; /** * Created by IntelliJ IDEA. * User: Zhong Gang * Date: 11-7-20 * Time: 下午8:13 * To change this template use File | Settings | File Templates. */ public class Comment { private Integer id; private String content; private Diary diary; public Comment() { } }
4.Comment.hbm.xml
<?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 default-access="field"> <class name="com.template.model.Comment" table="comment"> <id name="id" column="id" type="java.lang.Integer"> <generator class="native"/> </id> <property name="content" column="content" type="java.lang.String"/> <many-to-one name="diary" class="com.template.model.Diary" column="diaryid"/> </class> </hibernate-mapping>
省去Diary与Comment对应的sql语句,相信从Diary.hbm.xml和Comment.hbm.xml映射文件中应该能够知道sql语句是什么样的结构。在comment表中添加了一个diaryid字段来维护Diary与Comment的一对多的关联关系。
如果你只希望从一方能够得到多方,即从一篇日志知道它有哪些评论,而不希望从多方得到一方,即从一条评论无法知道它属于哪篇日志。那么你只需要做一点小小的改动就够了,如下示:
5.Comment.java
package com.template.model; /** * Created by IntelliJ IDEA. * User: Zhong Gang * Date: 11-7-20 * Time: 下午8:13 * To change this template use File | Settings | File Templates. */ public class Comment { private Integer id; private String content; public Comment() { } }
6.Comment.hbm.xml
<?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 default-access="field"> <class name="com.template.model.Comment" table="comment"> <id name="id" column="id" type="java.lang.Integer"> <generator class="native"/> </id> <property name="content" column="content" type="java.lang.String"/> </class> </hibernate-mapping>
即把diary属性删除即可,但是一定记住不能把comment表中的diaryid字段也删除了,那样Diary与Comment也就不存在一对多的关联了。
评论
3 楼
men2011it
2012-01-20
2 楼
hanxu341
2011-11-29
lf6627926 写道
高手 我说的意思能不能 在中间的表中还有出了 两个表的主键外 还有其他的字段 如日期,等等。有好办法吗
同问
1 楼
lf6627926
2011-10-24
高手 我说的意思能不能 在中间的表中还有出了 两个表的主键外 还有其他的字段 如日期,等等。有好办法吗
发表评论
-
Hibernate unique使用
2011-11-28 22:16 1109在Hibernate中对于一对一的关联关系配置 ... -
Hibernate cascade在不同关联关系中的具体表现
2011-11-22 21:47 3086在Hibernate中,针对持久化实体的配置文件中有 ... -
Hibernate element使用
2011-11-20 20:43 1541一.Person package co ... -
Hibernate 单表实现树结构
2011-11-13 21:10 2794来看看通过单表来实现一个树形结构的方式。这里假设有这样 ... -
Hibernate save persist merge探究
2011-10-27 17:59 4084先来看看hibernate-reference.pd ... -
Hibernate Search配置及简单应用
2011-10-25 16:06 2539Hibernate Search是一款集成Apach ... -
Hibernate的三种配置方式
2011-10-24 16:58 1773对于Hibernate的配置方式,有三种,一种是通过 ... -
dynamic-insert,dynamic-update 我有话要说
2011-10-21 17:39 12923在之前的一个项目中,Team leader说在每一个 ... -
Hibernate one-to-many composite-element实现
2011-10-17 16:55 2614Hibernate中持久化实体间一对多关联关系的compo ... -
基于DomainObject的通用数据库CRUD操作
2011-10-17 15:09 1562对于项目中的持久化实体,持久化实体虽然对应着不同的业务对象 ... -
Hibernate one-to-many 双方双向连接表关联
2011-10-17 14:24 1700Hibernate中持久化实体间一对多关联,具体关联关 ... -
Hibernate one-to-many 多方单向连接表关联
2011-10-15 23:37 1254Hibernate中持久化实体间一对多 ... -
Hibernate one-to-many 一方单向连接表关联
2011-10-15 23:17 1647Hibernate中对于持久化实体间的关联关系有 ... -
Hibernate one-to-one 两方双向连接表关联
2011-10-15 17:38 2715Hibernate中对于持久化实体间的关联关系有三种分类, ... -
Hibernate fetch 抓取策略
2011-09-27 18:20 1317Hibernate fetch抓取策略定义了当抓 ... -
Hibernate 关联关系解除
2011-09-27 13:46 1504Hibernate对于持久化实体间的关联关系解 ... -
Hibernate one-to-many cascade探究
2011-09-08 13:20 1119对于Hibernate的one-to-many关联关系中, ... -
Hibernate inverse 深度解析
2011-08-09 22:55 1232inverse 英文意思为反向,倒转的。 Hi ... -
Hibernate ORM one-to-one主键关联关系映射
2011-08-01 22:08 1348Hibernate ORM one-to-one映射主要有 ... -
Hibernate ORM Inheritance
2011-07-31 22:56 1318Hibernate ORM提供了三 ...
相关推荐
One To Many Mapping 3. Many To Many Mapping 4. Hibernate Spring integartion 本文中使用的工具和技术 1. Java JDK 7 and above 2. MySQL 5 above 3. Hibernate 4 above 4. Sping 4 above 5. Maven 3.3 ...
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 父子关系 164 7.3 映射一对多双向自身...
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 父子关系 164 7.3 映射一对多双向自身...
JPA2.0 加入了大量必须的 ORM 映射增强特性,包括:支持通过使用 @ElementCollection 标注来增强 collections, maps 和 lists( 这里不是指实体之间的关联关系 ) 集合,支持 map 的单向 one-to-many 关联 (JPA1.0...
Spring Boot和JPA的Hibernate教程和演示
类与类之间的关系主要体现在表与表之间的关系进行操作,它们都市对对象进行操作,我们程序中把所有的表与类都映射在一起,它们通过配置文件中的many-to-one、one-to-many、many-to-many、 4. 说下Hibernate的缓存...
{1.9.6}go-to}{33}{subsection.1.9.6} {1.9.7}\texttt {do-while}}{33}{subsection.1.9.7} {1.10}数组(array)}{34}{section.1.10} {1.10.1}数组变量的声明}{34}{subsection.1.10.1} {1.10.2}数组变量的初始化...
many-to-one:标签中对于cascade的取值delete,delete-orphan,all-delete-orphan(只用unique属性值不为true不能出现)慎用 cascade:级联属性 none:不做任何级联操作 save-update:对当前对象执行save,update, ...
如何书写一个 one to many 配置文件. 11、iBatis与Hibernate有什么不同? 12、写Hibernate的一对多和多对一双向关联的orm配置? 9、hibernate的inverse属性的作用? 13、在DAO中如何体现DAO设计模式? 14、spring+...
如何书写一个 one to many 配置文件. 122 11、iBatis与Hibernate有什么不同? 122 12、写Hibernate的一对多和多对一双向关联的orm配置? 122 9、hibernate的inverse属性的作用? 122 13、在DAO中如何体现DAO设计模式? ...
如何书写一个 one to many 配置文件. 122 11、iBatis与Hibernate有什么不同? 122 12、写Hibernate的一对多和多对一双向关联的orm配置? 122 9、hibernate的inverse属性的作用? 122 13、在DAO中如何体现DAO设计模式? ...
如何书写一个 one to many 配置文件. 122 11、iBatis与Hibernate有什么不同? 122 12、写Hibernate的一对多和多对一双向关联的orm配置? 122 9、hibernate的inverse属性的作用? 122 13、在DAO中如何体现DAO设计模式? ...
如何书写一个 one to many 配置文件. 122 11、iBatis与Hibernate有什么不同? 122 12、写Hibernate的一对多和多对一双向关联的orm配置? 122 9、hibernate的inverse属性的作用? 122 13、在DAO中如何体现DAO设计模式? ...
如何书写一个 one to many 配置文件. 122 11、iBatis与Hibernate有什么不同? 122 12、写Hibernate的一对多和多对一双向关联的orm配置? 122 9、hibernate的inverse属性的作用? 122 13、在DAO中如何体现DAO设计模式? ...
如何书写一个 one to many 配置文件. 122 11、iBatis与Hibernate有什么不同? 122 12、写Hibernate的一对多和多对一双向关联的orm配置? 122 9、hibernate的inverse属性的作用? 122 13、在DAO中如何体现DAO设计...
如何书写一个 one to many 配置文件. 133 11、iBatis与Hibernate有什么不同? 133 12、写Hibernate的一对多和多对一双向关联的orm配置? 134 9、hibernate的inverse属性的作用? 134 13、在DAO中如何体现DAO设计模式? ...
如何书写一个 one to many 配置文件. 122 11、iBatis与Hibernate有什么不同? 122 12、写Hibernate的一对多和多对一双向关联的orm配置? 122 9、hibernate的inverse属性的作用? 122 13、在DAO中如何体现DAO设计模式? ...