- 浏览: 246635 次
- 性别:
- 来自: 济南
文章分类
- 全部博客 (205)
- jQuery (27)
- Flash AS3.0 (0)
- Html5+CSS3 (12)
- C# .Net (19)
- Xml XPath XSLT (5)
- Sql (3)
- JavaScript (20)
- struts2 (23)
- hibernate (24)
- spring (11)
- j2ee (16)
- jsp/java (11)
- 设计模式 (5)
- json (3)
- Java.IO (7)
- Java.Util (7)
- android (8)
- WebService (10)
- MyEclipse SVN (3)
- servlet (1)
- Exception (3)
- 自我学习 (2)
- UML (2)
- java泛型 (1)
- Lucene (7)
- HtmlParser (2)
- 概念理解 (3)
- 正则表达式 (1)
- EMail (1)
最新评论
-
hanmiao:
没用,干巴巴的壹堆代码,没明白到底区别在哪里。
List Set Map 区别! -
e421083458:
偶来过了!
C#单向链表的实现
package com.secn.user;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
import org.junit.Test;
//在多的一端来维护表
public class SecnTest {
@Test
public void danxiangtianjia(){ //单行多对一
new SchemaExport(new AnnotationConfiguration().configure()).create(false, true);
NewsSort newsSort = new NewsSort();
newsSort.setSortName("news FenLei");
News news = new News();
news.setNewName("Li Lian Jie");
news.setNewsSort(newsSort);
SessionFactory sf = new AnnotationConfiguration().configure().buildSessionFactory();
Session session = sf.openSession();
session.beginTransaction();
session.save(news);
//System.out.println(newsSort.getSortName());
session.getTransaction().commit();
session.close();
sf.close();
}
@Test
public void shuangxiangtianjia(){ //双向多对一
//new SchemaExport(new AnnotationConfiguration().configure()).create(false, true);
News news1 = new News();
news1.setNewName("Li Lian Jie");
News news2 = new News();
news2.setNewName("Li Xiao Long");
NewsSort newsSort = new NewsSort();
newsSort.setSortName("news FenLei");
newsSort.getNews().add(news1);
newsSort.getNews().add(news2);
news1.setNewsSort(newsSort);
news2.setNewsSort(newsSort);
SessionFactory sf = new AnnotationConfiguration().configure().buildSessionFactory();
Session session = sf.openSession();
session.beginTransaction();
session.save(newsSort);
System.out.println(newsSort.getSortName());
session.getTransaction().commit();
session.close();
sf.close();
}
@Test
public void getNews(){ //读取记录
//new SchemaExport(new AnnotationConfiguration().configure()).create(false, true);
SessionFactory sf = new AnnotationConfiguration().configure().buildSessionFactory();
Session session = sf.openSession();
session.beginTransaction();
//@ManyToOne(cascade={CascadeType.ALL})
//cascade:只真对增删改;
//默认情况下也会地取出NewsSort的信息
News news = (News)session.get(News.class, 1);
session.getTransaction().commit();
session.close();
sf.close();
}
@Test
public void GetNewsSort(){ //读取分类
//new SchemaExport(new AnnotationConfiguration().configure()).create(false, true);
SessionFactory sf = new AnnotationConfiguration().configure().buildSessionFactory();
Session session = sf.openSession();
session.beginTransaction();
//默认情况下不会读取出News表的内容
//可以通过fetch=FetchType.EAGER(渴望|勤快)LAZY(懒惰)读取出来
NewsSort newsSort = (NewsSort)session.get(NewsSort.class, 1);
session.getTransaction().commit();
session.close();
sf.close();
}
@Test
public void getLoad(){ //读取记录
//new SchemaExport(new AnnotationConfiguration().configure()).create(false, true);
SessionFactory sf = new AnnotationConfiguration().configure().buildSessionFactory();
Session session = sf.openSession();
session.beginTransaction();
//@ManyToOne(cascade={CascadeType.ALL})
//cascade:只真对增删改;
//默认情况下也会地取出NewsSort的信息
//读新闻时默认不会读出新闻对应分类
News news = (News)session.load(News.class, 1);
System.out.println(news.getNewName());//在这一行调用时才会执行SQL语句
session.getTransaction().commit();
session.close();
sf.close();
}
@Test
public void getUpdateNews(){ //读取记录
//new SchemaExport(new AnnotationConfiguration().configure()).create(false, true);
SessionFactory sf = new AnnotationConfiguration().configure().buildSessionFactory();
Session session = sf.openSession();
session.beginTransaction();
//@ManyToOne(cascade={CascadeType.ALL})
//cascade:只真对增删改;
//默认情况下也会地取出NewsSort的信息
//在分类和新闻中不要都设计fetch=FetchType.EAGER属性
News news = (News)session.load(News.class, 1);
System.out.println(news.getNewsSort().getSortName());//在这一行调用时才会执行SQL语句
session.getTransaction().commit();
session.close();
sf.close();
}
}
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
import org.junit.Test;
//在多的一端来维护表
public class SecnTest {
@Test
public void danxiangtianjia(){ //单行多对一
new SchemaExport(new AnnotationConfiguration().configure()).create(false, true);
NewsSort newsSort = new NewsSort();
newsSort.setSortName("news FenLei");
News news = new News();
news.setNewName("Li Lian Jie");
news.setNewsSort(newsSort);
SessionFactory sf = new AnnotationConfiguration().configure().buildSessionFactory();
Session session = sf.openSession();
session.beginTransaction();
session.save(news);
//System.out.println(newsSort.getSortName());
session.getTransaction().commit();
session.close();
sf.close();
}
@Test
public void shuangxiangtianjia(){ //双向多对一
//new SchemaExport(new AnnotationConfiguration().configure()).create(false, true);
News news1 = new News();
news1.setNewName("Li Lian Jie");
News news2 = new News();
news2.setNewName("Li Xiao Long");
NewsSort newsSort = new NewsSort();
newsSort.setSortName("news FenLei");
newsSort.getNews().add(news1);
newsSort.getNews().add(news2);
news1.setNewsSort(newsSort);
news2.setNewsSort(newsSort);
SessionFactory sf = new AnnotationConfiguration().configure().buildSessionFactory();
Session session = sf.openSession();
session.beginTransaction();
session.save(newsSort);
System.out.println(newsSort.getSortName());
session.getTransaction().commit();
session.close();
sf.close();
}
@Test
public void getNews(){ //读取记录
//new SchemaExport(new AnnotationConfiguration().configure()).create(false, true);
SessionFactory sf = new AnnotationConfiguration().configure().buildSessionFactory();
Session session = sf.openSession();
session.beginTransaction();
//@ManyToOne(cascade={CascadeType.ALL})
//cascade:只真对增删改;
//默认情况下也会地取出NewsSort的信息
News news = (News)session.get(News.class, 1);
session.getTransaction().commit();
session.close();
sf.close();
}
@Test
public void GetNewsSort(){ //读取分类
//new SchemaExport(new AnnotationConfiguration().configure()).create(false, true);
SessionFactory sf = new AnnotationConfiguration().configure().buildSessionFactory();
Session session = sf.openSession();
session.beginTransaction();
//默认情况下不会读取出News表的内容
//可以通过fetch=FetchType.EAGER(渴望|勤快)LAZY(懒惰)读取出来
NewsSort newsSort = (NewsSort)session.get(NewsSort.class, 1);
session.getTransaction().commit();
session.close();
sf.close();
}
@Test
public void getLoad(){ //读取记录
//new SchemaExport(new AnnotationConfiguration().configure()).create(false, true);
SessionFactory sf = new AnnotationConfiguration().configure().buildSessionFactory();
Session session = sf.openSession();
session.beginTransaction();
//@ManyToOne(cascade={CascadeType.ALL})
//cascade:只真对增删改;
//默认情况下也会地取出NewsSort的信息
//读新闻时默认不会读出新闻对应分类
News news = (News)session.load(News.class, 1);
System.out.println(news.getNewName());//在这一行调用时才会执行SQL语句
session.getTransaction().commit();
session.close();
sf.close();
}
@Test
public void getUpdateNews(){ //读取记录
//new SchemaExport(new AnnotationConfiguration().configure()).create(false, true);
SessionFactory sf = new AnnotationConfiguration().configure().buildSessionFactory();
Session session = sf.openSession();
session.beginTransaction();
//@ManyToOne(cascade={CascadeType.ALL})
//cascade:只真对增删改;
//默认情况下也会地取出NewsSort的信息
//在分类和新闻中不要都设计fetch=FetchType.EAGER属性
News news = (News)session.load(News.class, 1);
System.out.println(news.getNewsSort().getSortName());//在这一行调用时才会执行SQL语句
session.getTransaction().commit();
session.close();
sf.close();
}
}
发表评论
-
java的枚举的定义和使用
2012-01-12 23:29 1190public emun EmunName { w ... -
常用SQL语句
2011-12-31 11:33 644MySql分组查询语句: from Share as s ... -
hibernate对映射xml的一对多的双向关联详解
2011-12-18 00:15 876<?xml version="1.0" ... -
getHibernateTemplate().execute(new HibernateCallback())方法
2011-12-14 09:43 4441. HibernateCallback是一个 ... -
Java企业级开发SSH三大框架的Jar包
2011-12-06 18:39 942123 -
struts spring hibernate配置文件
2011-10-24 21:24 946ApplicationContext ctx = new Cl ... -
Annotation的关联关系
2011-10-19 23:22 688一对一、一对多、多对多、组合映射、主键关系 的单向和双向 ... -
hibernate 名词解释
2011-10-18 23:20 751JPA是一个标准(接口),hibernate只是一个实现 先有 ... -
Junit测试文件
2011-10-18 22:19 825package com.bjsxt.hibernate; ... -
log4j.properties
2011-10-18 22:00 724### direct log messages to stdo ... -
Hibernate的Hql
2011-09-23 21:58 1104Hibernate 查询语言 NativeSQL(不执行跨平台 ... -
Hibernate关系映射
2011-09-22 22:14 650关系映射: 对象之间的关系 一对一(单向和双向) Annont ... -
Hibenrate一对多和多对多
2011-09-20 23:18 335... -
Hibernate联合主键
2011-09-20 22:35 783package com.bjsxt.hibernate; i ... -
Hibernate一对一的关联关系
2011-09-20 22:30 670... -
Hbernate一对一单向关系(Annotation)
2011-09-20 21:54 693package com.bjsxt.hibernate.mod ... -
Load()和Get()的区别和update用法
2011-09-20 20:03 964Load(Teacher.Class,1); Teacher. ... -
Configuration_SessionFactory_GetCurrentSession_OpenSession以及Hibernate中的三种状态
2011-09-19 21:55 756SessionFactory sf = new Configu ... -
常用的hiberante中xml的ID生成策略
2011-09-19 21:09 1145hiberante的xml生成策略: 策略一般是指:1. 可以 ... -
hibernate Annotation版本持久化实体类
2011-09-18 01:16 732package com.bjsxt.hibernate; ...
相关推荐
在这个" Hibernate级联操作一对多demo "中,我们将探讨如何在一对多的关系中应用级联操作。 一对多关系是数据库中常见的关系类型,它表示一个实体(如部门)可以有多个相关实体(如员工)。在Hibernate中,这种关系...
在Hibernate中,级联操作(Cascading Operations)是一种高级特性,它使得对象之间的关联关系在数据库层面得以同步更新。当我们对一个实体对象进行操作时,可以设置级联属性,让这些操作自动传播到与之相关联的其他...
在 Hibernate 中,级联操作(Cascade)和反向属性(Inverse)是管理对象关系的重要概念,特别是在处理一对多(One-to-Many)或多对一(Many-to-One)关系时。 **级联操作(Cascade)** 级联操作定义了当主对象被...
Hibernate提供了级联操作来简化数据的保存、更新和删除等操作,使得开发者无需手动编写复杂的SQL语句,就能实现关联对象的联动处理。 **描述分析:** 虽然描述部分为空,但根据给定的博文链接,我们可以推测文章...
本主题将深入探讨"hibernate级联增删改查",特别是针对"t_card主表"和"t_person从表"的关系。 首先,级联操作在Hibernate中是一种配置,用于指定当主表中的实体发生变化时,是否以及如何更新或删除关联的从表实体。...
一、Hibernate级联(Cascade) 级联操作允许我们将对一个实体的更改自动应用到与之关联的其他实体。在一对多关系中,如果一个实体(父实体)与多个实体(子实体)关联,设置级联属性可以确保在处理父实体时,子实体...
在Hibernate中,级联操作可以通过`cascade`属性进行配置。主要有以下几种级联类型: 1. `save-update`:当保存或更新父实体时,会自动保存或更新所有关联的子实体。 2. `merge`:在调用`session.merge()`时,不仅...
在探讨Hibernate框架中的级联操作(cascade)与控制权反转(inverse)之前,我们需要先对Hibernate有一个基本的理解。Hibernate是一个开放源代码的对象关系映射(ORM)框架,它为Java应用提供了一种将对象模型映射到...
在文档中提到的场景下,我们来详细探讨Hibernate级联删除的原理和配置方法。 首先,我们要理解关系映射中的几个关键概念。在给出的例子中,有四个表:A、AA、B和BB,它们之间存在一对多(one-to-many)和一对一...
例如,如果在`User`和`Order`的关系中,我们希望由`User`来控制级联操作,可以将`@OneToMany`的`mappedBy`属性设在`User`上,然后设置`inverse`属性为`true`,使得`User`成为关系的主控方,这样在处理`User`时,级联...
在IT领域,尤其是在Java开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它允许开发者用面向对象的方式操作数据库。尽管随着Spring Data JPA等现代技术的崛起,Hibernate的使用频率有所下降,但其核心...
### Hibernate基础之关联映射与级联操作 #### 第一部分:主键生成策略与对象状态管理 ##### 主键生成策略 在使用Hibernate框架时,合理的主键生成策略能够极大地简化开发工作并提升应用性能。Hibernate提供了多种...
总的来说,这个项目展示了如何使用Hibernate、Ajax和DWR来实现一个高效、用户友好的省市县三级级联选择功能。开发过程中涉及了ORM、MVC架构、数据库操作以及前端交互等多个方面,是学习和实践Web开发技能的好实例。
1. Hibernate 级联操作与 `cascade` 属性: Hibernate 提供了级联操作功能,使得对一个实体的保存、更新、删除等操作可以自动影响与其关联的其他实体。在 Hibernate 中,`cascade` 属性用于指定这种级联行为。题目...
###Hibernate级联操作 级联操作包括级联添加、修改、删除和查看。在一对多或多对多关系中,配置级联类型可以控制当操作一个对象时,其关联对象的反应。例如,在一对多关系中,配置级联添加后,添加父对象时会自动为...
### Hibernate级联(Cascade)详解 #### 一、概述 Hibernate 是一款强大的对象关系映射 (ORM) 框架,它允许开发人员将 Java 对象模型映射到数据库表,从而极大地简化了数据访问层的开发工作。在 Hibernate 中,...
在级联操作中,Hibernate可能被用来处理省市县和年月日的数据存取,通过HQL(Hibernate Query Language)或者Criteria API来执行SQL查询,获取级联选择的数据。 级联操作的核心在于数据间的关联,例如选择一个省后...
文中提到,直接使用fromObject(list)方法在Hibernate级联操作关联的对象上会报错,如果需要保留级联操作,就必须去掉映射文件中的级联配置。这是因为在进行JSON序列化时,Hibernate的关联关系可能会导致异常。 4. ...
在Hibernate中,可以通过`@OneToMany`注解来定义这种关系,并通过`cascade`属性设置级联操作,例如`CascadeType.ALL`表示所有操作都将级联。 2. **一对一(OneToOne)**:这种关系意味着两个实体之间存在一对一的...