- 浏览: 1275661 次
- 性别:
- 来自: 常州
文章分类
- 全部博客 (499)
- java (101)
- linux (82)
- mysql (30)
- javascript (45)
- Oracle (12)
- ext (14)
- 虚拟机 (1)
- 搜索引擎 (2)
- struts2 (11)
- 设计模式 (9)
- nginx (17)
- tomcat (12)
- 随想 (10)
- spring (18)
- svn (1)
- flash (3)
- UML (1)
- 数据结构 (7)
- 算法 (2)
- 网摘 (9)
- 数据库 (15)
- ibatis (3)
- jquery (31)
- lucene (1)
- hibernate (14)
- Myeclipse (4)
- 线程 (7)
- jbpm (4)
- 重构 (1)
- mantis (3)
- MediaWiki (4)
- ExtMail (1)
- MDaemon (1)
- egit (1)
- dwr (7)
- sitemesh (2)
- mybatis (1)
- ico (1)
- hadoop (5)
- jsoup (1)
- urlrewrite (2)
- jstl (1)
- spring3 (2)
- aop (2)
- 定时器 (1)
- Quartz (2)
- apache (1)
- php (1)
- security (1)
- iptables (2)
- QQ (1)
- mysqldump (1)
- vim (1)
- memcached (4)
- jad (1)
- 微博 (1)
- html5 (1)
- css3 (1)
- httpclient (10)
- google (1)
- shortUrl (1)
- json (2)
- virtualBox (1)
- mantisBT (2)
- htmlunit (1)
- selenium (2)
- mail (1)
- 正则表达式 (4)
- html (3)
- css (2)
- jatoolsPrinter (1)
- 图片处理 (1)
- hql (1)
- webservice (1)
- 分词 (3)
- 短信 (1)
- VPS (1)
- 事务 (1)
- 广告 (1)
- 画廊 (1)
- git (3)
- github (1)
- openshift (1)
- 缓存 (1)
- web (3)
- android (3)
- c3p0 (1)
- 邮箱 (1)
- memcache (2)
- windows (2)
- js (14)
- 编辑器 (1)
- 打印 (1)
- centos (5)
- boneCP (1)
- 连接池 (1)
- sql (1)
- nosql (1)
- MongoDB (1)
- 浏览器 (1)
- node (1)
- node.js (1)
- backbone.js (1)
- lazyload (1)
- Switch Off (1)
- Titanium (1)
- 网站架构 (1)
- WebDriver (1)
- APJP (1)
- 代理 (1)
- comet (1)
- kendoui (1)
- UI (2)
- 互联网 (1)
- localStorage (1)
- 记录 (1)
- 微信 (2)
- Sphinx (1)
- netty (1)
- js,mvvm,Avalon (1)
- 安卓 (1)
- Tengine (1)
- 大数据 (1)
- 手机 (1)
- paypal (1)
- SaaS (1)
- gitlab (1)
- nodejs (1)
- React (1)
- shadowsocks (0)
- vpn (0)
- 验证码 (1)
- SSL (2)
- SEO (1)
- IntelliJ (1)
- 敏捷开发 (1)
- 项目管理 (1)
- 爬虫 (1)
- 正则 (1)
- owncloud (1)
- 云存储 (1)
- ajax (1)
- pjax (1)
- jdk (1)
- zookeeper (1)
- phantomjs (1)
- ELK (1)
- springcloud (1)
- IDEA (1)
- hexo (1)
- ss (1)
- letencrypt (1)
最新评论
-
peakandyuri:
这个是有BUG的,数字小体现不出来,数字大了就不对了,但是Ja ...
java十进制转换N进制并反转换的工具类 -
ginolai:
然后是相关配置:/etc/sysconfig/iptables ...
Linux中iptables设置详细 -
bzhao:
我测试没啥区别啊!
Thread.sleep()和Thread.currentThread().sleep()区别 -
zhl549342097:
match == false
Spring Security 3.1 中功能强大的加密工具 PasswordEncoder -
hellotieye:
renzhengzhi 写道drager 写道用jsoup后解 ...
jsoup select 选择器
第一种:双向one-to-one,两边都配置one-to-one且数据库有主外键关系,外键又是子表的主键(此时month表id为主键,creater表id为外键对映关系)
mysql数据库表结构:
CREATE TABLE `month` ( `id` INTEGER(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(20) COLLATE utf8_general_ci NOT NULL DEFAULT '', `total` FLOAT(9,2) DEFAULT '0.00', PRIMARY KEY (`id`) )ENGINE=InnoDB AUTO_INCREMENT=0 CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'
CREATE TABLE `creater` ( `id` INTEGER(11) NOT NULL, `name` VARCHAR(100) COLLATE utf8_general_ci DEFAULT NULL, PRIMARY KEY (`id`), CONSTRAINT `creater_fk` FOREIGN KEY (`id`) REFERENCES `month` (`id`) )ENGINE=InnoDB CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'
Month.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"> <!-- Mapping file autogenerated by MyEclipse Persistence Tools --> <hibernate-mapping package="com.xuyi.modal"> <class name="Month" table="month" catalog="myweb"> <id name="id" type="java.lang.Integer"> <column name="id" /> <generator class="native" /> </id> <property name="name" type="java.lang.String"> <column name="name" length="20" not-null="true" /> </property> <property name="total" type="java.lang.Float"> <column name="total"/> </property> <one-to-one name="creater" class="Creater" cascade="all"></one-to-one> <set name="things" inverse="true" lazy="false" cascade="all-delete-orphan"> <key column="monthid"/> <one-to-many class="Thing"/> </set> </class> </hibernate-mapping>
Creater.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"> <!-- Mapping file autogenerated by MyEclipse Persistence Tools --> <hibernate-mapping package="com.xuyi.modal"> <class catalog="myweb" name="Creater" table="creater"> <id name="id" type="java.lang.Integer"> <column name="id"/> <generator class="foreign"> <param name="property">month</param> </generator> </id> <property name="name" type="java.lang.String"> <column length="100" name="name"/> </property> <one-to-one name="month" class="Month" constrained="true"></one-to-one> </class> </hibernate-mapping>
测试代码:
com.xuyi.modal.Month m = new com.xuyi.modal.Month(); m.setName("2011年12月"); m.setTotal(10f); Creater c = new Creater(); c.setName("sina"); c.setMonth(m); m.setCreater(c); getHibernateTemplate().save(m);
--------------------------------------------------------------分割线------------------------------------------------------------
第二种:在主键表使用one-to-one,外键表使用many-to-one,此种情况外键较第一种情况有所区别,反过来主键为creater表的id并且改为自增字段(第一种的时候此id字段为month的外键,此种情况变为主键),外键为month表新增字段creater_id(注意数据库要加这个字段唯一约束)。
CREATE TABLE `month` ( `id` INTEGER(11) NOT NULL AUTO_INCREMENT, `creater_id` INTEGER(11) NOT NULL, `name` VARCHAR(20) COLLATE utf8_general_ci NOT NULL DEFAULT '', `total` FLOAT(9,2) DEFAULT '0.00', PRIMARY KEY (`id`), UNIQUE KEY `creater_id` (`creater_id`), CONSTRAINT `month_fk` FOREIGN KEY (`creater_id`) REFERENCES `creater` (`id`) )ENGINE=InnoDB AUTO_INCREMENT=0 CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'
CREATE TABLE `creater` ( `id` INTEGER(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(100) COLLATE utf8_general_ci DEFAULT NULL, PRIMARY KEY (`id`) )ENGINE=InnoDB AUTO_INCREMENT=0 CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'
Month.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"> <!-- Mapping file autogenerated by MyEclipse Persistence Tools --> <hibernate-mapping package="com.xuyi.modal"> <class name="Month" table="month" catalog="myweb"> <id name="id" type="java.lang.Integer"> <column name="id" /> <generator class="native" /> </id> <property name="name" type="java.lang.String"> <column name="name" length="20" not-null="true" /> </property> <property name="total" type="java.lang.Float"> <column name="total"/> </property> <many-to-one name="creater" column="creater_id" class="Creater" cascade="all" unique="true"></many-to-one> <set name="things" inverse="true" lazy="false" cascade="all-delete-orphan"> <key column="monthid"/> <one-to-many class="Thing"/> </set> </class> </hibernate-mapping>
Creater.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"> <!-- Mapping file autogenerated by MyEclipse Persistence Tools --> <hibernate-mapping package="com.xuyi.modal"> <class catalog="myweb" name="Creater" table="creater"> <id name="id" type="java.lang.Integer"> <column name="id"/> <generator class="native"> </generator> </id> <property name="name" type="java.lang.String"> <column length="100" name="name"/> </property> <one-to-one name="month" class="Month" property-ref="creater"></one-to-one> </class> </hibernate-mapping>
测试代码:(同上)
com.xuyi.modal.Month m = new com.xuyi.modal.Month(); m.setName("2012年4月"); m.setTotal(10f); Creater c = new Creater(); c.setName("4"); c.setMonth(m); m.setCreater(c); getHibernateTemplate().save(m);
一般情况下建议用第一种,而且在数据库设计的时候也相比第二种情况要少建一个字段和一个约束。
发表评论
-
hibernate自定义对象投影查询
2014-07-25 14:53 835List list=dao.find("sele ... -
Hibernate查询返回自定义对象
2014-07-22 14:11 7322/** * Convert query ... -
[记录]最新Hibernate悲观锁最新变更
2013-07-30 10:39 826static LockMode UPGRADE ... -
Hibernate缓存命中机制[转]
2013-03-14 02:15 2735通过这篇文章纪录hibernate二级缓存的一些使用经历,利 ... -
hibernate日志配置
2013-03-14 02:09 2426### direct log messages to ... -
Hibernate缓存机制
2013-01-15 23:00 1069缓存是位于应用程序 ... -
hibernate中使用SQLQuery处理一些hibernate不方便处理的问题(表外连接)
2012-11-02 15:11 1244一般表外链接hibernate是不建议并且支持不好的,所以尽量 ... -
Hibernate中one-to-many的Order-by无法排序的问题
2012-02-02 21:49 2377问题如下: 在一个一对多的双向关联中在一的一方进行如下配置: ... -
hibernate中关于一对多,多对多的二级缓存设置和同步问题
2012-01-01 18:20 1675首先,hibernate中的二级缓存分2块,第一块是moda ... -
利用枚举反射替换hibernate的自定义类型UserType
2011-12-11 00:36 2276因为hibernate枚举类型实在配置繁琐,所以直接用枚举换 ... -
hibernate中多对多设置
2011-12-08 14:25 988一段时间不用了,纯属记录,以防忘记了。。。 在hibe ... -
[转]Hibernate中property-ref的使用,常用来解决遗留数据库One To Many关系
2011-10-18 16:52 19241.如表Class(ClassID,Class_No,Clas ... -
Hibernate用Oracle的sequence生成自增Id
2011-10-16 13:59 1236<?xml version="1.0&q ...
相关推荐
在Hibernate的hbm.xml文件中,一对一关系通过<one-to-one>标签,一对多关系通过、、或标签来定义。需要详细指定实体类名、主键列名以及关联的外键列名。 2. 注解配置: 在实体类上直接使用@OneToOne、@OneToMany等...
在实际应用中,我们经常需要建立双向关联,即在many-to-one的一端和one-to-many的一端都可以访问到对方。例如,班级可以获取其所有学生,而学生也可以知道他们所属的班级。在双向关联中,一方(通常是one-to-many的...
在本文中,我们将详细介绍Hibernate一对一唯一外键关联映射的概念、配置方法和实践应用。 一对一唯一外键关联映射的概念 在Hibernate中,一对一唯一外键关联映射是指两个实体之间的关联关系,其中一个实体作为外键...
本文将深入探讨Hibernate中一对多(One-to-Many)关系的处理方式,特别是通过外键映射和inverse属性的应用场景。 #### 一对多关系概念 一对多关系在数据库设计中非常常见,它指的是一个实体可以与多个其他实体关联...
【Hibernate应用例子one-to-one】 Hibernate 是一个强大的Java对象关系映射(ORM)框架,它允许开发者以面向对象的方式操作数据库,从而简化了数据库应用程序的开发。在Hibernate中,"one-to-one"(一对一)关联是...
在Java的持久化框架Hibernate中,一对一(One-to-One)关联是对象关系映射(ORM)中的一个重要概念,它用于表示两个实体之间一对一的映射关系。本篇将深入探讨Hibernate 3.2中的一对一关系,以及如何在实际项目中...
在Hibernate中,可以通过 `<many-to-one>` 或者 `<one-to-many>` 标签中的 `cascade` 属性来指定这种行为。 #### 代码示例解析 在提供的代码示例中,`<many-to-one>` 标签中包含了 `cascade` 属性的注释示例,但是...
在Hibernate中,`one-to-many`关系是常见的实体间关系之一,表示一个实体可以与多个其他实体相关联。本文将深入探讨`Hibernate one-to-many`注解的使用和实现细节。 ### 一、`@OneToMany`注解概述 `@OneToMany`...
本实例将详细讲解如何在Hibernate中实现Many-to-One关系映射,这是一种常见的数据库关联,表示一个实体可以与多个其他实体相关联。 在Many-to-One关系中,通常一个实体(如部门)可以有多个相关实体(如员工),而...
为了使用 `publisher` 属性,我们需要在 `Book` 类的 Hibernate 映射文件中添加 `<many-to-one>` 映射。这将在 `BOOK` 表中添加一个名为 `PUBLISHER_ID` 的列,并存储关联出版商的 ID。 ```xml <!-- 其他属性的...
本文主要关注Hibernate中的一个核心概念——一对一(One-to-One)、一对多(One-to-Many)和多对一(Many-to-One)关联映射,特别是关于“一到多”单向和双向关联映射的配置心得。 首先,让我们了解“一到多”关联...
总之,Hibernate中的基于外键的One-to-One映射是一种常用的数据关联技术,理解和熟练应用这一概念对于Java开发者来说至关重要。通过细致的配置和合理的实体设计,我们可以构建出高效、稳定的数据库应用程序。
本示例将详细讲解如何在Hibernate中实现多对多(many-to-many)的关系映射。 在数据库设计中,多对多关系是指两个实体之间存在多个关联,比如学生和课程的关系,一个学生可以选修多门课程,一门课程也可以被多个...
本话题主要探讨的是Hibernate中的一种关联映射方式——一对一(One-to-One)单向外键关联。这种关联模式通常用于两个实体之间存在唯一对应的关系,例如一个用户对应一个唯一的账户。 在Hibernate中,一对一关联可以...
本主题主要关注的是Hibernate中的一个关键概念——一对一(One-To-One)关联映射。一对一关联是两个实体之间的一种关系,其中每个实体最多只能与另一个实体的单个实例相关联。 ### 一对一关联的基本概念 一对一关联...
在Java的持久化框架Hibernate中,一对一(One-to-One)关联映射是常见的关系映射类型之一。它用于表示两个实体之间一对一的关联关系,即一个实体对应另一个实体的唯一实例。下面将详细介绍Hibernate中如何进行一对一...
本篇文章将全面探讨Hibernate的关联映射学习,包括一对一(One-to-One)、一对多(One-to-Many)、多对一(Many-to-One)以及多对多(Many-to-Many)四种关系映射。 首先,一对一关联映射(One-to-One)是两个实体...
标题"Hibernate one to many(many to one) 配置"涉及到的是关系型数据库在Java中的持久化框架Hibernate中的两种关联映射关系:一对一(One-to-One)和多对一(Many-to-One)。在数据库设计中,这种关系很常见,例如...
总之,"hibernate-one-to-many-uni"这个项目是为了展示如何在Hibernate中配置和使用一对多单向关联,帮助开发者理解和掌握这一常见关系的处理方式,从而在实际项目中更加高效地进行数据操作。通过学习这个示例,你...
<one-to-many class="Order"/> ``` ```java @Entity public class User { @Id private Long id; private String name; @Fetch(FetchMode.JOIN) @OneToMany(mappedBy = "user") private List<Order>...