- 浏览: 989331 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (223)
- JDBC技术 (29)
- Java Base (21)
- SSH框架的集合 (5)
- Javascript部分 (16)
- Sping2.5框架 (6)
- Hibernate框架 (19)
- JDBC中的数据库连接 (5)
- Ajax技术应用 (9)
- Java工具包下载 (3)
- Database (4)
- Java Web (13)
- 我的生活 (4)
- Struts2 (25)
- S2SH (1)
- Prototype (1)
- jfreeChart (5)
- JPA (7)
- JBPM (1)
- JasperReport (6)
- DWR (1)
- freeMark (2)
- IBatis (2)
- FCKeditor (2)
- POI (1)
- JQuery (6)
- JSON (1)
- JavaMail (3)
- Flex (2)
- CSS收藏夹 (1)
- 润乾报表 (2)
- 开源技术 (1)
- Android (2)
- Android_UI (1)
- Android_OS (6)
- Android_OpenLibs (3)
- Volley (1)
- JS_OpenLibs (1)
- Hessian (3)
- OS (1)
最新评论
-
damoluomu:
简单易懂
Java Web开发Session超时设置 -
di1984HIT:
学习了~~~~~~
Java Web开发Session超时设置 -
lord_is_layuping:
...
Java Web开发Session超时设置 -
15111285554:
...
Java Web开发Session超时设置 -
sfg1314:
暂停后重新下载就会报错:ClientAbortExceptio ...
Java Web 文件下载之断点续传
数据库:
create table student
(
id int identity(1,1) not null primary key,
s_name varchar(50),
s_sex varchar(20)
)
go
create table card
(
id int primary key,
address varchar(100),
cardnum varchar(20)
)
select * from student
select * from card
delete from card
delete from student
Student.hbm.xml配置如下:(主对象)
<hibernate-mapping>
<class name="com.mengya.entity.Student" table="student" schema="dbo" catalog="mp">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native" />
</id>
<property name="SName" type="java.lang.String">
<column name="s_name" length="50" />
</property>
<property name="SSex" type="java.lang.String">
<column name="s_sex" length="20" />
</property>
<!-- 一对一时,没有inverse属性 -->
<one-to-one name="card" class="com.mengya.entity.Card" cascade="all"></one-to-one>
</class>
</hibernate-mapping>
Card.hbm.xml配置如下:(从对象)
<hibernate-mapping>
<class name="com.mengya.entity.Card" table="card" schema="dbo"
catalog="mp">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="foreign">
<param name="property">student</param>
</generator>
</id>
<property name="address" type="java.lang.String">
<column name="address" length="100" />
</property>
<property name="cardnum" type="java.lang.String">
<column name="cardnum" length="20" />
</property>
<one-to-one name="student" class="com.mengya.entity.Student"></one-to-one>
</class>
</hibernate-mapping>
我的测试:
public class Test extends MySessionUtil {
private Session session;
private Transaction tran;
public void save1(){
Student stu=new Student();
stu.setSName("张明学");
stu.setSSex("男");
Card card=new Card();
card.setAddress("湖北武汉");
card.setCardnum("421125198764212454");
/*
* 主方指定从方并且主方 cascade="all",若从方没有指定主方,会报错 * 也就是说,添加card时没有指定student错误
*/
stu.setCard(card);
//card.setStudent(stu);
session=this.GetSession();
tran=session.beginTransaction();
session.save(stu);
tran.commit();
session.close();
}
public void save2(){
Student stu=new Student();
stu.setSName("梦娅");
stu.setSSex("女");
Card card=new Card();
card.setAddress("湖北黄冈");
card.setCardnum("421125666546542789");
/*
* 从方指定主方,主方不指定从方,可以添加成功
*/
card.setStudent(stu);
session=this.GetSession();
tran=session.beginTransaction();
session.save(card);
tran.commit();
session.close();
}
public void select(){
/*
* 一对一的查询时,对主方的查询也会自己对从方查询,即不能对从方懒加载
* 因为查询主方时要对从方产生一个代理对象,而这个代理对象在主方中直接得不到,它要去查从方得到代理对象
* 查询从方就可以进行懒加载
*/
session=this.GetSession();
Student stu=(Student) session.get(Student.class,new Integer(3));
session.close();
System.out.println(stu.getSName());
System.out.println(stu.getCard().getCardnum());
System.out.println(stu.getCard().getAddress());
}
public static void main(String[] args) {
Test text=new Test();
//text.save2();
text.select();
}
}
个人说明:在多对一中,若把多方中的一方设置为unique也可以变成一对一的关系。
发表评论
-
Hibernate的HQL not like查询
2009-09-24 18:20 9742今天想用Hibernate的Restriction ... -
Hibernate Gossip: Bag
2009-09-14 16:37 1435Bag是集合,与Set不同的是,Bag允许重复的元素,在Jav ... -
hibernate的Restrictions用方说明
2009-06-15 21:09 1881方法 说明 Restric ... -
Hibernate完成常用的JDBC操作下
2009-05-29 16:38 1421一方: package com.mengya.dao; i ... -
Hibernate完成常用的JDBC操作上
2009-05-29 16:35 1881package com.mengya.dao; import ... -
Native SQL查询
2009-04-29 22:02 1552你也可以使用你的数据 ... -
hibernate调用存储过程来分页
2009-04-29 07:56 3722虽然Hibernate帮助我们完成了分页功能,但若 ... -
Hibernate中实体对象的生命周期
2009-04-21 22:58 1400实体对象的生命周期在Hibernate应用中是一个很关键的概念 ... -
HibernateTemplate的常规用法
2009-04-21 22:55 1315HibernateTemplate提供非常多的常用方法来完成基 ... -
cascade与inverse的作用
2009-04-21 22:52 1757Cascade:用来说明当对主对象进行某种操作时是否对其关联的 ... -
Hibernate多对多说明
2009-04-21 22:47 1387数据库:--学生表create table stu( s_i ... -
query.iterate()与query.list()的区别
2009-04-21 22:46 1993Query query=this.GetSession().c ... -
Hibernate中的Query一些基本用法
2009-04-21 22:45 5023/*** 添加*/public void save(Stu s ... -
Hibernate中Criteria的使用
2009-04-21 22:42 2801/*** 使用Criteria全查询*/public List ... -
Hibernate关联表特殊查询(一方)inner join fetch,left join fet
2009-04-21 22:40 18037inner join fetch/*** 一对多中的一方inn ... -
Hibernate关联表特殊查询(多方)上
2009-04-21 22:39 2339/*** 多条件组合查询*/ public List get ... -
get和load的区别
2009-04-20 17:20 1189(1)load()方法从来就是假定数据在数据库中是存在的,在使 ... -
Hibernate中的ORM关系映射主键生成方式即(Generator的class值)
2009-04-20 17:18 2129主键产生器可选项说明 ...
相关推荐
**标题:“Hibernate一对一”** **描述:** 这篇文章主要探讨了Hibernate框架中的一对一关系映射,这是一种在数据库设计中常见的关联方式。作者通过在博客中分享,详细讲解了如何在Java应用程序中使用Hibernate实现...
本项目“hibernate一对多项目”旨在演示如何在JavaWeb应用中使用Hibernate处理一对多的关系映射。这里我们将深入探讨 Hibernate 的一对多关系、配置以及在实际项目中的应用。 首先,一对多关系在数据库中很常见,...
描述部分虽然为空,但我们可以根据标题推测,这篇内容可能涉及了如何在Hibernate中配置和使用一对一关联,包括实体类的设计、注解的使用以及数据库表的结构设计等。 **知识点详解** 1. **Hibernate ORM框架**: ...
**标题:“Hibernate 一对一”** **一、Hibernate 概述** Hibernate 是一款强大的 Java 开源对象关系映射(ORM)框架,它简化了数据库与 Java 应用程序之间的交互。ORM 解决了 Java 对象与 SQL 数据库之间的类型不...
本教程“Hibernate一对一实例”是为初学者设计的,旨在帮助你们理解并掌握Hibernate框架中的一对一映射关系。 一、Hibernate简介 Hibernate是一个开源的对象关系映射(ORM)框架,它允许开发者用Java对象来表示...
hibernate一对一关系映射,我们需要学习的内容包括知识点
hibernate 一对多和多对一的理解 自己的个人看法 大家也来看看
本主题聚焦于Hibernate中的一对一(OneToOne)关系的源码分析,这对于理解Hibernate的工作原理和优化数据访问性能至关重要。 在Hibernate中,一对一关系是指两个实体类之间存在一个唯一的对应关系,通常通过主键...
“Hibernate 一对一,一对多,多对多例子” 指的是使用Hibernate框架实现数据库中不同关联关系的示例。Hibernate是一个Java持久化框架,它提供了对象关系映射(ORM)功能,使得开发人员可以方便地在Java对象和关系...
本篇文章将深入探讨Hibernate中的一对一(OneToOne)和多对一(ManyToOne)关系的源码实现。 **一对一(OneToOne)关系** 在现实生活中,一对一是指两个实体之间存在唯一的关系,例如一个人可能只有一张身份证。在...
**标题:“Hibernate双向一对多经典实例”** 在Java开发中,Hibernate是一个强大的对象关系映射(ORM)框架,它简化了数据库操作,使得开发者能够用面向对象的方式处理数据。本实例将聚焦于Hibernate中的一对多关系...
1. **关联类型:** Hibernate支持四种基本的关联类型,包括一对一(OneToOne)、一对多(OneToMany)、多对一(ManyToOne)和多对多(ManyToMany)。本主题将主要聚焦在一对一和一对多关联。 2. **关联的方向性:**...
- **一对一(One-to-One)**: 使用@OneToOne注解,可以定义实体之间的一对一关系。这通常通过主键外键约束实现。 - **一对多(One-to-Many)**: @OneToMany注解用于表示一个实体可以拥有多个相关实体,如一个用户...
《使用Hibernate Shards对数据进行切分》 在大规模分布式系统中,数据库的扩展性问题一直是开发者关注的重点。Hibernate Shards是Hibernate框架的一个扩展,它提供了数据库分片(Sharding)的功能,帮助解决高并发...
在这个“Struts+Hibernate一对多的管理系统”项目中,我们将深入理解这两个框架如何协同工作,构建出一个具备一对多关系的数据管理应用。在Java Web开发中,一对多关系非常常见,比如在一个用户可以拥有多个订单的...
在本文中,我们将详细介绍Hibernate一对一唯一外键关联映射的概念、配置方法和实践应用。 一对一唯一外键关联映射的概念 在Hibernate中,一对一唯一外键关联映射是指两个实体之间的关联关系,其中一个实体作为外键...
**描述分析:**描述链接指向了CSDN上的一篇文章,文章详细介绍了如何在实际项目中使用Hibernate实现一对一单向外键关联。源码是配合教程的示例代码,帮助读者理解并实践所学知识。 **标签解析:“Hibernate 一对一...
- **关联映射**:Hibernate支持一对一、一对多、多对一、多对多等多种关联关系的映射。 - **懒加载**:延迟加载策略可以在需要时才加载关联对象,提高性能。 - **级联操作**:可以设置级联关系,使得对父对象的操作...
在这个" Hibernate级联操作一对多demo "中,我们将探讨如何在一对多的关系中应用级联操作。 一对多关系是数据库中常见的关系类型,它表示一个实体(如部门)可以有多个相关实体(如员工)。在Hibernate中,这种关系...