- 浏览: 665654 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (173)
- ajax (4)
- ant (4)
- css (14)
- eclipse (1)
- exe4j (0)
- hibernate (7)
- html (29)
- http (2)
- install4j (0)
- java (35)
- javascript (31)
- jdbc (1)
- jquery (2)
- jsp (15)
- linux命令 (8)
- ooad (2)
- properties (3)
- servlet (1)
- spring (3)
- struts (6)
- swing (4)
- thread (2)
- version_control (1)
- webservice (4)
- xml (4)
- 数据库 (19)
- 正则表达式 (5)
- 其他 (16)
- 面试题 (1)
- 框架 (9)
- maven (1)
- util (29)
- 设计模式 (1)
最新评论
-
herodie4444:
看起来好像不难。
Java Struts2创建Excel文件并实现文件下载 -
心轨翼:
Java遍历Set集合方法 -
魔鬼的献祭:
...
java的web开发分页工具类 -
Nmxszxsl:
能发一个没有被墙的代码到我的邮箱吗?万分感谢。54365156 ...
Google翻译post提交无长度限制的在线翻译例子 -
782763595:
...
jar包混淆器介绍
背景说明:论坛中每个用户(Admin类)有多个好友,每个好友,可以是多个用户的好友。是表自身多对多的关系。
Admin类代码:
CREATE TABLE `friendrelation` (
`OwenerId` int(11) NOT NULL default '0',
`FriendId` int(11) NOT NULL default '0',
PRIMARY KEY (`OwenerId`,`FriendId`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
admin类的 hibernate文件Admin.hbm.xml内容(注释中有简单说明):
参考:
http://topic.csdn.net/u/20080516/11/c86b95b1-8a09-43e6-96cd-8058f051bfe4.html
Admin类代码:
package com.soonj.entity; import java.util.HashSet; import java.util.Set; public class Admin { private Integer aid;// private String adminName;//admin's name--unique private String password;//admin's password private String authDay;//authorize day private Set<Admin> friends = new HashSet<Admin>(); private Set<AdminMessage> messages = new HashSet<AdminMessage>(); public void addFriend(Admin friend){ friends.add(friend); } public void addMessage(AdminMessage message){ messages.add(message); message.setBelonger(this); } public Set<Admin> getFriends() { return friends; } public void setFriends(Set<Admin> friends) { this.friends = friends; } public String getAdminName() { return adminName; } public void setAdminName(String adminName) { this.adminName = adminName; } public Integer getAid() { return aid; } public void setAid(Integer aid) { this.aid = aid; } public String getAuthDay() { return authDay; } public void setAuthDay(String authDay) { this.authDay = authDay; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public Set<AdminMessage> getMessages() { return messages; } public void setMessages(Set<AdminMessage> messages) { this.messages = messages; } }
CREATE TABLE `friendrelation` (
`OwenerId` int(11) NOT NULL default '0',
`FriendId` int(11) NOT NULL default '0',
PRIMARY KEY (`OwenerId`,`FriendId`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
admin类的 hibernate文件Admin.hbm.xml内容(注释中有简单说明):
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="com.soonj.entity"> <class name="Admin" table="admins"> <id name="aid" column="aid" type="java.lang.Integer"> <generator class="increment"></generator> </id> <property name="adminName" column="adminName" not-null="true" unique="true"></property> <property name="password" column="password" not-null="true"></property> <property name="authDay" column="authDay" not-null="true"></property> <set name="friends" table="friendrelation" cascade="save-update" lazy="false" inverse="false"> <key column="OwenerId"></key><!-- 中间表第一个字段 --> <many-to-many class="Admin" column="FriendId"/><!-- 中间表第二个字段 --> </set> <set name="messages" cascade="save-update" lazy="false" inverse="true"> <key column="mfid"></key> <one-to-many class="AdminMessage"/> </set> </class> </hibernate-mapping>
参考:
http://topic.csdn.net/u/20080516/11/c86b95b1-8a09-43e6-96cd-8058f051bfe4.html
评论
1 楼
chentian0216
2013-02-04
额 有个问题
<set name="friends" table="friendrelation" cascade="save-update" lazy="false" inverse="false">
<key column="OwenerId"></key><!-- 中间表第一个字段 -->
<many-to-many class="Admin" column="FriendId"/><!-- 中间表第二个字段 -->
</set>
其中lazy = false
这样的话不是会一直形成死循环吗???
<set name="friends" table="friendrelation" cascade="save-update" lazy="false" inverse="false">
<key column="OwenerId"></key><!-- 中间表第一个字段 -->
<many-to-many class="Admin" column="FriendId"/><!-- 中间表第二个字段 -->
</set>
其中lazy = false
这样的话不是会一直形成死循环吗???
发表评论
-
java读取.properties配置文件的几种方法
2017-09-22 09:38 678读取.properties配置文件在实际的开发中使用的很多,总 ... -
java前后台字符串编码转换
2016-12-15 15:52 807此文为应用中遇到字符串编码转换问题网上找资料解决问题记录笔记, ... -
JS前端DES加密参数
2016-07-08 14:27 11739DES加密为可解密的机制,这里使用DES进行加密方便后台解密还 ... -
XSS跨站漏洞修复
2016-07-08 11:47 4927避免XSS跨站漏洞的方法之一主要是将用户所提交的内容输入输出进 ... -
hibernate注解配置联合主键
2014-07-17 09:35 1576有时一个实体的主键可能同时为多个,例如下面使用的字典“Dict ... -
hibernate的clob数据处理
2014-05-21 17:11 1126hibernate的clob数据处理: import or ... -
java设计模式笔记链接地址汇总
2012-12-25 12:02 1088这是iteye博客用户的iulve-rover-163-com ... -
java枚举类型(转)
2012-12-24 18:34 4977public class TestEnum { ... -
内存溢出
2012-11-21 11:07 11251.PermGen space的全称是Permanent Ge ... -
日期比较例子
2012-10-16 15:30 1221/** * 时间日期比较处理例子 * @autho ... -
Struts2的简单示例action类
2012-09-26 19:57 4695基类: package com.kit.common; ... -
Java过滤html标签
2012-09-21 09:54 1816方法一: String oldStr="< ... -
Web项目设置页面不缓存
2012-08-04 19:55 2898htm网页 <meta http-equiv=&qu ... -
Java文件保存与删除工具类
2012-07-26 15:46 4357import java.io.File; import ... -
使用AOP实现监控日志并保存
2012-07-13 20:42 6013最近项目中要做个效能监控的功能,经过考虑,觉得选择spring ... -
POI兼容读取Excel2003和Excel2007
2012-06-29 16:00 9461import java.io.File; import ... -
登录验证过滤器Filter
2012-06-01 14:30 1611import java.io.IOException; ... -
hibernate一对多自身关联
2011-12-31 13:24 1448hibernate一对多自身关联配置,注意cascade=&q ... -
java Web常用基本操作代码
2011-12-30 10:23 34501.Struts2中文件保存 //设置文件的三个属性,并 ... -
Eclipse或MyEclipse中如何恢复已删除文件(转)
2011-12-24 18:44 1534今天在MyEclipse鼠标点得太快,误删了一个花了两天才写好 ...
相关推荐
在这个“Hibernate一对多双向自身关联demo代码”中,我们将深入理解如何实现一个实体类与其自身进行一对多的双向关联。这种关联在实际应用中常见于例如用户的朋友关系、员工的上下级关系等场景。 首先,让我们了解...
总结来说,"Hibernate自身关联一对多实例(树形结构)"涉及到Java对象与数据库表之间的映射,以及如何在代码中建立和管理这种关联。正确理解和应用这些知识,可以帮助开发者高效地处理层次型数据,提高开发效率。对于...
在Java持久化领域,Hibernate是一个广泛应用的ORM(对象...在实际项目中,这种关联模式常用于构建社交网络、组织结构、多对多关系的中间表等多种场景。因此,深入学习和实践这部分内容对于提升Java开发能力非常有帮助。
多对多的关联关系可以使用`@ManyToMany`注解,Hibernate会自动创建一个中间表来存储两个实体类之间的关联。如果需要自定义中间表的名称或字段,可以使用`@JoinTable`注解。在双向多对多关联中,依然需要`mappedBy`来...
在这个特定的例子中,我们关注的是如何在Hibernate中实现自连接查询,以处理Oracle数据库中EMP表的树状结构问题。 首先,自连接查询是指一个表与自身进行连接的操作,常用于处理具有层级关系的数据,例如员工的上...
7. **自身关联(Self-association)**: 类的一个实例可以关联自身,例如树的枝丫结构。在Java中,类中会包含一个自身类型的属性,使用`@ManyToOne`或`@OneToOne`等注解来映射。 8. **泛化(Generalization)**: ...
7.3 映射一对多双向自身关联关系 165 7.4 改进持久化类 171 7.5 小结 175 7.6 思考题 176 第8章 通过Hibernate操纵对象(上) 179 本章站在持久化层的角度,Java对象在生命周期中可处于临时状态、持久化状态、...
《Hibernate Annotation 学习笔记》 在Java的持久化框架中,Hibernate以其强大的功能和易用性成为开发者首选之一。...在后续的学习笔记中,我们将继续探索更多关于Hibernate Annotation的实用技巧和高级特性。
7.3 映射一对多双向自身关联关系 165 7.4 改进持久化类 171 7.5 小结 175 7.6 思考题 176 第8章 通过Hibernate操纵对象(上) 179 本章站在持久化层的角度,Java对象在生命周期中可处于临时状态、持久化状态、...
TfileDAOHibernate提供了对TfileDAO接口基于Hibernate的实现,如代码 3所示: 代码 3 基于Hibernate 的fileDAO实现类 1. package sshfile.dao; 2. 3. import sshfile.model.*; 4. import org.springframework....
然而,Hibernate自身并不直接处理事务管理,而是依赖于底层的JDBC(Java Database Connectivity)和JTA(Java Transaction API)来实现。 Hibernate的核心组件是SessionFactory和Session。SessionFactory是一个全局...
一对一映射是数据库设计中的一个重要概念,特别是在关系型数据库中,它用于描述两个表之间的一种特殊关系,即每个表中的记录最多只能与另一个表中的一条记录相关联。这种关系非常紧密,通常出现在一个实体的信息被...
在IT行业中,Hibernate是一个强大的Java持久化框架,它简化了数据库与Java对象之间的交互...同时,遇到配置不成功的情况,不应轻易放弃,而应多尝试、多查阅资料,这样不仅能解决问题,也能提升自身的解决问题的能力。
在实际开发中,开发者可能选择使用ORM(对象关系映射)框架,如Hibernate或MyBatis,来简化数据库操作,提高开发效率。这些框架能够将JAVA对象和数据库表进行绑定,使得开发者可以通过操作对象来实现对数据库的操作...
- **OSUser现有例子中的bug**:某些示例代码中可能存在未处理异常或逻辑错误。 #### Provider的作用 Provider在OSWorkflow中主要负责提供数据和行为的支持。通常情况下,每个步骤都会有一个对应的Provider来处理...
- **多对多关系**:讲解了多对多关系的处理方式,包括中间表的使用。 - **自关联关系**:讨论了领域类与其自身的关联关系的实现方法。 #### 六、让模型开始工作 **6.1 通过脚手架迅速创建用户界面** - **脚手架**...