- 浏览: 702339 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (362)
- java基础 (33)
- html/css+div/javascript (17)
- Ajax/XML/JSON/XSL (7)
- JQuery (11)
- Extjs (1)
- JSP/Servlet (19)
- MVC模式 (4)
- struts 1 (17)
- Struts 2.3.4 (17)
- Spring 3.2 (26)
- Springmvc (3)
- Hibernate 4.1 (21)
- ibatis (6)
- Velocity模板语言 (2)
- Rose框架 (5)
- EJB (1)
- JUnit测试 (2)
- 数据库DB (24)
- 重构 / 设计模式 (3)
- 开发工具IDE (37)
- 数据结构与算法设计 (3)
- Android (12)
- Linux (4)
- bug集合 (29)
- 缓存技术(redis) (3)
- Lucene全文索引 (15)
- maven3.0.5 (4)
- 小工具集合 (18)
- 面试题 (5)
- 闲聊 (11)
- 其他 (4)
- 接口API (2)
- work (2)
- Flex (0)
- JMS (1)
- 开源项目集合 (1)
- 技术博客 (1)
- 分类04 (0)
- 分类05555 (0)
最新评论
-
小小小羊:
好屌...
java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$Refle -
liubinli2005:
这个可以脱底spring。单独使用吗?
DAO层:jade -
cangbaotu:
我觉得对于开发者来说,能脚本化编写爬虫是一件挺开心的事情( ̄▽ ...
网页爬取 -
asjava:
很好的文章, 但每段代码清单都重复了一次.
spring 事务 -
xia635317478:
jethypc 写道验证码的session无法传过去啊 还是我 ...
登陆验证码(struts2实现)
OneToOne OneToMany ManyToMany
@ManyToOne 默认fetch=FetchType.enger
@OneToMany 默认fetch=FetchType.Lazy
重要:
双向关系:一定分别在两个类里面设“双向关联”即(假如dish和Sort双向关系:sort里面设:OneToMany(mappedBy="sort") dish里面设:@ManyToOne)
双向关联:一定要设 XXToXX(mappedBy="") 便于表之间数据一致
一、联合主键
@Entity class Customer { @EmbeddedId CustomerId id; boolean preferredCustomer; } @Embeddable class CustomerId implements Serializable { @OneToOne @JoinColumns({ @JoinColumn(name="userfirstname_fk", referencedColumnName="firstName"), @JoinColumn(name="userlastname_fk", referencedColumnName="lastName") }) User user; String customerNumber; //implements equals and hashCode } @Entity class User { @EmbeddedId UserId id; Integer age; } @Embeddable class UserId implements Serializable { String firstName; String lastName; //implements equals and hashCode }
<class name="Customer"> <composite-id name="id" class="CustomerId"> <key-property name="firstName" column="userfirstname_fk"/> <key-property name="lastName" column="userfirstname_fk"/> <key-property name="customerNumber"/> </composite-id> <property name="preferredCustomer"/> <many-to-one name="user"> <column name="userfirstname_fk" updatable="false" insertable="false"/> <column name="userlastname_fk" updatable="false" insertable="false"/> </many-to-one> </class> <class name="User"> <composite-id name="id" class="UserId"> <key-property name="firstName"/> <key-property name="lastName"/> </composite-id> <property name="age"/> </class>
二、one-To-many单向关联
public class Parent { @Id @GeneratedValue private long id; @OneToMany private Set<Child> children; // getter/setter ... } public class Child { @Id @GeneratedValue private long id; private String name; // getter/setter ... }
<hibernate-mapping> <class name="Parent"> <id name="id"> <generator class="sequence"/> </id> <set name="children"> <key column="parent_id"/> <one-to-many class="Child"/> </set> </class> <class name="Child"> <id name="id"> <generator class="sequence"/> </id> <property name="name"/> </class> </hibernate-mapping>
create table parent ( id bigint not null primary key ) create table child ( id bigint not null primary key, name varchar(255), parent_id bigint ) alter table child add constraint childfk0 (parent_id) references parent
三、one-To-many 双向关联如果父亲是必须的,那么就可以使用双向 one-to-many 的关联了
public class Parent { @Id @GeneratedValue private long id; @OneToMany(mappedBy="parent") private Set<Child> children; // getter/setter ... } public class Child { @Id @GeneratedValue private long id; private String name; @ManyToOne @JoinColumn(name="parent_id")//与上面的OneToMany(mappedBy="parent")对应 private Parent parent; // getter/setter ... }
<hibernate-mapping> <class name="Parent"> <id name="id"> <generator class="sequence"/> </id> <set name="children" inverse="true"> <key column="parent_id"/> <one-to-many class="Child"/> </set> </class> <class name="Child"> <id name="id"> <generator class="sequence"/> </id> <property name="name"/> <many-to-one name="parent" class="Parent" column="parent_id" not-null="true"/> </class> </hibernate-mapping>
create table parent ( id bigint not null primary key ) create table child ( id bigint not null primary key, name varchar(255), parent_id bigint not null ) alter table child add constraint childfk0 (parent_id) references parent
四、one-To-many单向 外键不为空Not Null
public class Parent { @Id @GeneratedValue private long id; @OneToMany(optional=false) private Set<Child> children; // getter/setter ... } public class Child { @Id @GeneratedValue private long id; private String name; // getter/setter ... }
hibernate-mapping> <class name="Parent"> <id name="id"> <generator class="sequence"/> </id> <set name="children"> <key column="parent_id" not-null="true"/> <one-to-many class="Child"/> </set> </class> <class name="Child"> <id name="id"> <generator class="sequence"/> </id> <property name="name"/> </class> </hibernate-mapping>
五、many-To-many
public class Parent { @Id @GeneratedValue private long id; @ManyToMany private Set<Child> children; // getter/setter ... } public class Child { @Id @GeneratedValue private long id; private String name; // getter/setter ... }
<hibernate-mapping> <class name="Parent"> <id name="id"> <generator class="sequence"/> </id> <set name="children" table="childset"> <key column="parent_id"/> <many-to-many class="Child" column="child_id"/> </set> </class> <class name="Child"> <id name="id"> <generator class="sequence"/> </id> <property name="name"/> </class> </hibernate-mapping>
create table parent ( id bigint not null primary key ) create table child ( id bigint not null primary key, name varchar(255) ) create table childset ( parent_id bigint not null, child_id bigint not null, primary key ( parent_id, child_id ) ) alter table childset add constraint childsetfk0 (parent_id) references parent alter table childset add constraint childsetfk1 (child_id) references child
发表评论
-
hibernate缓存总结
2013-09-05 09:54 745hibernate缓存总结 Hibernat ... -
Hibernate原理
2013-09-05 09:10 1189Hibernate原理 1.hibernate ... -
getHibernateTemplate().save和super.getHibernateTemplate().merge
2012-12-05 15:16 3004代码1_save: super.getHibernate ... -
分页查询
2012-12-03 16:57 847HibernateTemplate提供了非常多的常用方法来完成 ... -
mappingResource属性和mappingDirectoryLocations属性的使用
2012-11-19 16:54 647mappingResource属性和mappingDirect ... -
S2SH整合
2012-11-12 16:08 1084Struts2_spring_Hibernate整合 MyE ... -
spring中配置log4j
2012-11-10 16:30 1651log4j 和 slf4j slf4j和log4j用于做日志 ... -
log4j 和slf4j
2012-11-11 20:55 874http://sishuok.com/forum/blogPo ... -
Hibernate两级缓存
2012-10-29 17:01 768Hibernate两级缓存 一级缓存就是Session级别 ... -
数据加载 load get list iterator
2012-10-07 11:14 1072Hibernate的优化-数据加载 除了对映射文件的配置外 ... -
栏目、帖子、回复(设置导航ManyToOne便于操作 QBC/QBE语句)02
2012-10-06 11:39 1081栏目、帖子、回复(设置导航ManyToOne便于操作QBC/Q ... -
栏目、帖子、回复(设置导航便于操作)HQL使用01
2012-10-06 11:28 960栏目、帖子、回复(设置导航ManyToOne便于操作 HQL语 ... -
Many-To-Many (学生、课程、分数)
2012-10-05 17:41 1340Many-To-Many (学生、课程、分数) 多对多: 一个 ... -
树状结构Tree
2012-10-05 17:09 1157树状结构Tree 一、部门类Org.java impo ... -
CUDR_Fetch 和 Cascade
2012-10-05 16:05 4705CUDR_Fetch 和 Cascade 1.Fetch ... -
ID生成策略
2012-10-04 16:18 3924ID生成策略 1.XX.hbm.xml方 ... -
对象的几种状态
2012-10-04 14:10 1401对象的几种状态 1.Transient 刚new一个 ... -
load 和 get的区别
2012-10-04 11:49 1253session加载数据库数据时,load 和 get 1. ... -
Hibernate 注解和配置文件由ORM框架连接库
2012-10-02 12:30 4195Hibernate 注解和配置文件由ORM框架连接库 xm ... -
Hibernate 实现原理
2012-09-12 23:20 4188整体流程 1:通过configuration来读cfg.xml ...
相关推荐
本篇将详细阐述Hibernate中的对象三状态、一对一(OneToOne)、一对多(OneToMany)以及多对多(ManyToMany)关系映射。 一、Hibernate对象三状态 1. 游离态(Detached):对象在应用程序中创建,但尚未与Session...
onetomany onetoone manytoone manytomany xml的
关于Laravel Laravel是一个具有表达力,优雅语法的Web应用程序框架。 我们认为,发展必须是一种令人愉悦的创造力,才能真正实现。 Laravel通过减轻许多Web项目中使用的常见任务来减轻开发工作的痛苦,例如: ...
mappedBy 属性是 OneToOne、OneToMany 和 ManyToMany 三种关联关系的属性。用来标注拥有这种关系的字段。 例如,我们可以使用以下代码来定义 ManyToMany 关系: ```java @Entity public class Student { @Id ...
1. **一对一关联(OneToOne)**:这种关系中,两个实体类之间存在一个到另一个的唯一映射。例如,一个用户可能有一个唯一的个人资料。在EF Core中,可以通过定义外键或者使用独立关联来实现一对一关系。 2. **一对...
本压缩包“hibernate.rar”包含了关于Hibernate框架如何实现三种主要关联关系的源代码示例:一对一(OneToOne)、一对多(OneToMany)以及多对多(ManyToMany)。这些示例都是在Eclipse和MyEclipse开发环境中编写的...
轻松管理实体之间的OneToOne 、 OneToMany 、 ManyToMany等关系。 让您非常快速地编写数据库使用者程序。 奥尔曼是... 开源(根据 Apache License 2.0 许可) 轻量级和小 (~170 kb)(替代品如 Hibernate ~4 mb) ...
EclipseLink,开源的持久化框架,是Eclipse Foundation的一部分,它Eclipse...此外,EclipseLink还提供了一套丰富的实体映射规范,如@OneToOne、@OneToMany、@ManyToOne和@ManyToMany等注解,以支持SQL和NOSQL数据库。
`@OneToMany`、`@ManyToMany`和`@OneToOne`注解分别对应了一对多、多对多和一对一的关系映射,通过合理的配置,可以实现数据的高效管理和操作。在实际开发中,根据业务需求灵活运用这些注解,可以构建出稳定、可扩展...
在MyBatis中,关联映射是处理对象关系映射(ORM)的重要部分,用于描述实体类之间的关联关系,如一对一(OneToOne)、一对多(OneToMany)和多对多(ManyToMany)。下面我们将深入探讨这些关联映射的实现和原理。 ...
本文将深入探讨JPA中的四种主要关联关系:一对一(OneToOne)、一对多(OneToMany)、多对一(ManyToOne)和多对多(ManyToMany)。 1. **一对一关联(OneToOne)** 在一对一关联中,一个实体实例对应数据库中的唯...
本文将详细解析四种基本的关联类型:一对一(OneToOne)、多对多(ManyToMany)、一对多(OneToMany)和多对一(ManyToOne)。我们将探讨它们的概念、配置方式以及实际应用中的注意事项。 **一对一关联(OneToOne)**...
在EJB中,关系映射是数据模型的重要部分,主要包括一对一(OneToOne)、一对多(OneToMany)和多对多(ManyToMany)这三种关系类型。下面将详细阐述这些关系及其在EJB中的实现。 ### 一对一(OneToOne)关系 一对...
本资源包含多个示例,涵盖了Hibernate中的四种主要关联关系:一对一(OneToOne)、一对多(OneToMany)、多对一(ManyToOne)和多对多(ManyToMany),同时涉及了注解版和XML配置文件的使用。 1. **一对一关联...
它支持多种关联关系,包括一对一(OneToOne)、一对多(OneToMany)、多对多(ManyToMany),并且提供了级联操作来方便地管理这些关联。 【文件名称列表】: 1. **OneToOne**:这个文件可能包含关于一对一关联关系...
在Java的持久化框架Hibernate中,一对一(OneToOne)、一对多(OneToMany)和多对多(ManyToMany)的关系映射是常见的实体关联方式。本篇文章将深入探讨标题中提到的"一对一"(OneToMany)注解在实体之间的主键外键...
配置方式通常通过`@OneToOne`注解实现,可以设置`mappedBy`属性来指定在另一个实体中的反向关联字段。 ```java @Entity public class User { @OneToOne(mappedBy = "user") private Profile profile; } @Entity ...
主要的关联关系包括一对一(OneToOne)、一对多(OneToMany)、多对一(ManyToOne)和多对多(ManyToMany)。这些关系通过配置文件或注解来定义,使得对象间的关联可以在数据库层面得以体现。 二、一对一关联...
3. 实体类与表映射:掌握注解或XML方式将Java对象映射到数据库表,包括Id、Column、OneToOne、OneToMany、ManyToMany等关系的映射。 4. Session接口:了解Session的生命周期和常用方法,如save()、update()、delete...