1.
// /*不再:user.setGroup(group);*/
// //需要对User的group做如下设置
// //@ManyToOne(cascade={CascadeType.ALL})
// //cascade={CascadeType.ALL})可以把user关联的transparent对象:group保存进入
2.
/*在获取多方的时候,是否获得1方的数据,答案是肯定的
*一般我们获得一个用户的时候都会想得到它的组
**/
// /*@ManyToOne(cascade={CascadeType.ALL})
// * ManyToOne 无论你是否设置cascade={CascadeType.ALL}
// * 它默认都会帮你把1的那方取出来
// * */
/*在获取1方的时候,是否获得多方的数据,答案是否定的
*一般我们获取一个组的信息时不会获得这个组的所有用户的信息出来
**/
//测试get
Session session2=HibernateSessionFactory.getSession();
Transaction transaction2=session2.beginTransaction();
//默认不取多方的数据
Group g=(Group)session2.get(Group.class, 1);
//当加上了fetch=FetchType.EAGER后,会取多方(user)的数据
transaction2.commit();
session2.close();
@OneToMany(mappedBy="group",cascade={CascadeType.ALL},fetch=FetchType.EAGER)
//cascade只对del,update,create有效
//对于获取,用fetch
3.
@OneToMany(
mappedBy = "group"
, cascade = { CascadeType.ALL }
, fetch = FetchType.LAZY//默认值
)
//cascade只对del,update,create有效
//对于获取,用fetch
4.
@Entity
@Table(name="tb_user")
public class User implements Serializable{
private int id;
private String name;
private Group group;
@ManyToOne(
cascade={CascadeType.ALL}
,fetch=FetchType.LAZY
)
public Group getGroup() {
return group;
}
当从多方获得一方的数据时,默认是FetchType.EAGER
当从一方获得多方的数据时,默认是FetchType.LAZY
其实这是比较符合现实情况的
如上情况:
fetch=FetchType.LAZY
则SQL:
Hibernate:
select
user0_.id as id1_0_,
user0_.group_id as group3_1_0_,
user0_.name as name1_0_
from
tb_user user0_
where
user0_.id=?
fetch=FetchType.EAGER
则SQL:
Hibernate:
select
user0_.id as id1_1_,
user0_.group_id as group3_1_1_,
user0_.name as name1_1_,
group1_.id as id0_0_,
group1_.name as name0_0_
from
tb_user user0_
left outer join
tb_group group1_
on user0_.group_id=group1_.id
where
user0_.id=?
5.
当获得的数据需要排序才选择list,一般都是set
6.
分享到:
相关推荐
以下是基于标题“struts+spring+hibernate3+webligic812环境配置备忘录”的详细知识点解析: ### 一、环境搭建与配置 #### 1. WebLogic Server安装与配置 - **安装过程**:首先,下载WebLogic Server 8.1.2版本的...
【标题】"s2sh框架实例——个人备忘录系统源码" 提供了一个学习和研究Web开发的宝贵资源,特别适合对Java Web技术感兴趣的初学者。S2SH是Struts2、Spring和Hibernate三个开源框架的组合,是Java领域广泛应用的MVC...
Java SSM备忘录管理系统毕业论文 本文主要介绍了基于 Java SSM 框架和 MySQL 数据库的备忘录管理系统的设计与实现。该系统旨在解决传统备忘录管理中的问题,实现信息化和网络化,提高备忘录管理的效率和经济性。 ...
该压缩包文件“java记事簿管理系统_备忘录管理系统_通讯录_记账本-源码+数据库+论文or文档.zip”包含了基于Java开发的一个综合性的管理系统的源代码、数据库文件以及相关的论文或文档。这个系统集成了多个实用功能...
【标题】中的“大学毕业设计 项目实训 个人备忘录系统(java SSH网站源代码)”表明这是一个基于Java的SSH框架实现的个人备忘录系统,适用于大学生进行毕业设计或项目实训。SSH是Struts2、Spring和Hibernate三个开源...
这篇备忘录主要关注Hibernate的核心概念、功能及其实现方式。通过博文链接(已省略)可获取更深入的探讨。 【标签】:“源码”、“工具” 【压缩包子文件的文件名称列表】:TestHQL **知识点详解:** 1. **...
【标题】:“备忘录”涉及的技术点涵盖了图形用户界面(GUI)的元素设计、程序关闭的优雅实现、数据库管理和系统事件监听等多个方面。 【图形按钮】是用户界面设计中的重要组成部分,它允许用户通过点击来执行特定...
本备忘录将深入探讨Struts的核心概念、架构以及如何在实际项目中使用它。 **1. MVC模式** Struts是基于Model-View-Controller(MVC)设计模式的,这种模式有助于分离业务逻辑、数据模型和用户界面。Model代表业务...
5. **上传组件**:通常使用`commons-fileupload-1.2.jar`和`commons-io-1.3.2.jar`来处理文件上传功能。 6. **JSON处理**:`json-lib-2.0-jdk15.jar`用于解析和生成JSON格式的数据。 7. **JDBC驱动**:`jtds-1.2.2...
这是一个备忘录, 主要用angjularjs框架写的前台,bootstrap做的页面样式,页面跳转用了angular-ui-router这个模块插件。 后台主要用了springmvc和hibernate。这是我练笔的一个项目,由于时间关系有些功能没做,当中...
Code-memo 平时学习的开源框架的示例代码。包括mybatis、spring、spring-boot、hbase、...springboot、jpa、hibernate访问mysql,并提供restful接口 opensource-utils google guaua 使用示例,hbase访问接口以及hbase操
本篇文章将深入探讨“java版本控制(数据库版本控制)”,并结合备忘录设计模式来阐述其原理和实践。 首先,我们来理解什么是备忘录设计模式。备忘录模式是一种行为设计模式,它允许对象在不破坏封装性的前提下捕获...
- 行为型模式:模板方法、观察者、策略、职责链、命令、迭代器、访问者、备忘录、状态、解释器。 6. **数据库操作**: - SQL基础:查询、增删改操作,子查询,连接查询。 - 数据库事务的ACID属性,事务隔离级别...
- 代理模式、命令模式、迭代器模式、中介者模式、备忘录模式等。 - 观察者模式、策略模式、模板方法模式、访问者模式、职责链模式等。 - **常见面试题**: - 工厂模式与抽象工厂模式的区别? - 适配器模式的两种...
在"java web开发典型模块大全"中,我们看到提到了几个关键的模块或功能,包括Rss、备忘录、搜索引擎、聊天室和留言板。接下来,我们将详细探讨这些模块的实现和它们在Java Web开发中的重要性。 1. **Rss模块**:RSS...
- 备忘录:提供日历功能,记录备忘信息。 - 留言箱:收发消息,管理消息。 - 课程管理:包括开课信息和选课信息管理。 - 作业管理:发布和批改作业,导出成绩。 **4. 学生界面:** - 上交作业:选择课程和作业,...
- 行为型模式:如策略、模板方法、观察者、迭代器、责任链、命令、备忘录、解释器模式。 7. **其他** - 架构设计:MVC、微服务、SOA等架构模式的理解和应用。 - 性能优化:包括代码优化、数据库查询优化、服务器...
3.管理员用户:登录功能、退出功能、课程管理、作业管理、资料下载管理、选课管理、留言管理、备忘录管理、心得管理、班级管理、学院管理、系管理、教师管理、学生管理,拥有系统 最高权限。 三、注意事项 1、管理...
该图书馆主要分为:我的图书、我的收藏、备忘录、信息、日志、资料搜索、图书管理等几大模块。“我的图书”是指用户上传的所有文件;“我的收藏”是指用户保存的一些网摘;“备忘录”顾名思义是指用户向系统中添加...
在Java编程环境中,这些功能通常通过使用ORM(对象关系映射)框架,如Hibernate或JPA,来实现对数据库的操作。通过这些工具,开发者可以以面向对象的方式与数据库交互,提高代码的可读性和可维护性。 为了实现安全...