- 浏览: 78425 次
- 性别:
- 来自: 成都
最新评论
-
cfczdws:
唉,还有好多要学~~
css 文档流 父级对象 同级对象 -
chinalitianwu:
很有帮助 对于我这样的菜鸟来说
ServletContext与ApplicationContext -
gaoddhan:
讲的不错
hashcode 和equal -
bestree007:
execute()不是回调函数吗?
回调函数 -
talin2010:
真的很详细
JSP/Servlet编码设置详解
1. 值集合映射:这些集合包含的元素不是Domain Object,是一些值对象
1.1 Set映射:
<set name="Set属性名" table="表名">
<key column="与主键关联字段名" />
<element type="数据类型" column="字段名" />
</set>
1.2 List映射:
<list name="List属性名" table="表名">
<key column="与主键关联字段名" />
<list-index column="索引字段名" />
<element type="数据类型" column="字段名" />
</list>
1.3Map映射:
<map name="Map属性名" table="表名">
<key column="与主键关联字段名" />
<map-key type="数据类型" column="KEY字段名" />
<element type="数据类型" column="VALUE字段名" />
</map>
1.4 Bag映射:
<bag name="bag属性名" table="表名">
<key column="与主键关联字段名" />
<element type="数据类型" column="字段名" />
</bag>
1.5 Idbag映射:
<idbag name="idbag 属性名" table="表名">
<collection-id column="cid" type="java.lang.String">
<generator class="uuid.hex" />
</collection-id>
<key column="与主键关联字段名" />
<element type="数据类型" column="字段名" />
</idbag>
Bag和Set一样是无序集合,和Set不同的是,Bag允许元素重复,可以将List映射为Bag。
Bag与IdBag的区别:
public class User { private List<String> emails=new ArrayList<String>(); public void addEmail(String email) { emails.add(email); } public void removeEmail(String email) { emails.remove(email); } CREATE TABLE user ( id INT(11) NOT NULL auto_increment PRIMARY KEY ); CREATE TABLE emails( userId INT(11) NOT NULL, email VARCHAR(100) NOT NULL ); <bag name="emails" table="emails"> <key column="userId" /> <element column="email" type="java.lang.String" /> </bag> <idbag name="emails" table="emails"> <collection-id column="cid" type="java.lang.String"> <generator class="uuid.hex" /> </collection-id> <key column="email" /> <element column="email" type="java.lang.String" /> </idbag> User user1=new User(); user1.addEmail("email1@139.com"); user1.addEmail("email2@139.com"); user1.addEmail("email2@139.com"); User user2=new User(); user2.addEmail("email3@139.com"); //save user //user table id 1 2
如果采用bag,则emails表如下:
userid email
1 email1
1 email2
1 email2
2 email3
执行user1.remove(email2),根据List的remove方法,会删除第一个匹配的元素,但是Hibernate无法定位此元素,因而采取的方式为先全部清空,再重新插入数据库,效率低下,生成的sql意思如下:
delete from emails where userId=1;
insert into emails(userId,email) values(1,email1);
insert into emails(userId,email) values(1,email2);
insert into emails(userId,email) values(2,email3);
如果采用Idbag,则emails表如下:
cid userid email
cid1 1 email1
cid2 1 email2
cid3 1 email2
cid4 2 email3
执行user1.remove(email2),生成的sql意思如下:
delete from emails where cid=cid2;
此方式效率较高。
2. 实体关系映射
<many-to-one name="company" column="companyid" class="com.ijo.domain.user.Company">
<set name="subProjects" table="subproject_programmer" inverse="true">
<key column="programmerid"/>
<many-to-many class="com.ijo.domain.project.SubProject" column="subprojectid"/>
</set>
<bag name="subscriptions" table="subscription" >
<key column="companyid"/>
<one-to-many class="com.ijo.domain.subscription.Subscription"/>
</bag>
3. 继承关系映射
3.1 <subclass name="com.ijo.domain.common.category.AdjustCategory" discriminator -
value="AdjustCategory">
</subclass>
<subclass name="com.ijo.domain.common.category.TransportCategory" discriminator-
value="TransportCategory">
</subclass>
3.2 <joined-subclass name="com.ijo.domain.user.CustomerUser" table="customeruser">
<key column="userid"/>
</joined-subclass>
发表评论
-
Java compiler level does not match the version of the installed Java project fac
2010-08-29 14:01 3071Java compiler与 Java project fac ... -
css 文档流 父级对象 同级对象
2010-08-03 15:56 1971转自: http://apps.hi.baidu.com/s ... -
Mysql 中文乱码
2010-07-27 21:06 10651. 修改my.ini文件,把所有的default-chara ... -
"/"路径的使用
2010-07-21 22:54 706在本机搭建一个Web项目,项目名为:demo,浏览器中输入:h ... -
事务基本概念
2010-07-16 10:01 935转自: http://dev.firnow.com/ ... -
Spring <tx:advice/>和<aop:config/>配置事务
2010-07-15 22:10 3287<tx:advice id="txAdvice ... -
The server does not support version 2.5 of the J2EE Web module specification
2010-07-15 11:18 3842今天用Eclipse部署一个Web项目Test,报如下错误:T ... -
Hibernate 对象状态
2010-05-17 16:46 986转自:http://davidwei0595198 ... -
Hibernate 核心接口
2010-05-17 14:19 9501. Configuration接口 Configu ... -
Spring-模板方法模式及Callback
2010-05-17 12:20 2251Spring对JDBC的抽象和对Hibernate的集成, ... -
Spring MVC请求处理流程
2010-05-09 19:23 1456转自:http://www.yesky.com/imagesn ... -
ServletContext与ApplicationContext
2010-05-09 17:29 2184转自:http://darchen.iteye.com/bl ... -
forward 与redirect
2010-05-09 16:37 811转自:http://supercrsky.itey ... -
获得Spring的IOC容器
2010-04-28 18:46 763ApplicationContext ctx = WebAp ... -
BeanFactory和ApplicationContext
2010-04-28 18:31 856两者都是可以通过xml配置文件加载bean, Applicat ... -
Spring bean 初始化
2010-04-28 18:16 1437默认情况下,Spring容器启动时就会初始化容器中的所有bea ... -
Spring bean scope
2010-04-28 17:59 3777Spring容器最初提供了两种bean的scope类型:sin ... -
Spring 的依赖注入方式
2010-04-27 17:21 1104Spring支持构造注入和Set注入。 构造注入方式使用&l ... -
<context:spring-configured/>
2010-04-27 15:28 2396Spring 可以为IOC容器里的bean进行依赖注入,但如果 ... -
AOP概念
2010-04-27 12:42 8591. Aspect Aspect是对系统中的横切关注点( ...
相关推荐
关于对Hibernate关联映射的一个总结,其中有各种映射的例子,详细用法 等
此压缩包内有两文件,一个是hibernate的核心配置文件hibernate.cfg.xml,一个是实体映射文件*.hbm.xml,在配置hibernate文件时需要用到头部的约束,还有在配置没提示时需要用到(附带使用方法)。
主要介绍通过Hibernate不用别的插件,逆向生成实体类的方法,包括标签注解映射和hbm.xml文件映射两种
hibernate自动生成关键映射以及工厂类,连接数据库弄好连接和设置hibernate关键映射了,这些都不用头疼了。直接使用HibernateSessionFactory 工厂类调用方法测试就好了,方便简洁,还能提高编码效率。 本人亲自测试...
mappedBy属性用法: 该属性与关联关系的维护权相关。 该属性应放在放弃维护权一方。 该属性值为对方的关联属性,表明以后的关联关系将由它来负责。 使用该属性的注解,无需也不能再设置cascade属性。 ...
Hibernate Annotation几种关联映射 一对一(One-To-One) 使用@OneToOne注解建立实体Bean之间的一对一关联。一对一关联有三种情况:(1).关联的实体都共享同样的主键,(2).其中一个实体通过外键关联到另一个实体的主键...
通过该源代码可以详细的了解hibernate的criteria的用法,有助于快速的帮助初学者建立hibernate中面向对象的查询,
(1) Hibernate是一个面向Java环境的对象/关系数据库映射工具,Hibernate不仅管理Java类型到数据库表的映射,还提供查询数据和操作数据的OO方法。 (2) Hibernate对JDBC进行了轻量级的对象封装,使Java程序员可以...
hibernate中的集合映射,各种集合类型的使用方法及适用场景
主要介绍了hibernate一对多(多对一)双向关联映射的用法
2、Hibernate 的主要作用是简化应用的数据持久层编程,不仅能管理 Java 类到数 据库表的映射,还提供数据查询和获取数据的方法,从而大幅减少了开发人 员编写 SQL 和 JDBC 代码的时间; 3、Hibernate 框架主要包括...
2.2.2 ORM中间件的基本使用方法 2.2.3 常用的ORM中间件 2.3 实体域对象的其他持久化模式 2.3.1 主动域对象模式 2.3.2 JDO模式 2.3.3 CMP模式 2.4 Hibernate API简介 2.4.1 Hibernate的核心接口 ...
其中重点配置方法和Hibernate中普遍采用的方法链编程的使用。还需注意可以将组合主键构建成一个实体,这样在编程时更加直观。 05 05Hibernate_EntityLayerDesign : 实体层的设计,演示两种情况: 1) 数据库表:一张...
映射是Hibernate框架操作数据库数据的重要特性之一,这里我们来看一下Java的Hibernate框架中的基本映射用法讲解,包括最基本的单向一对一与多对一映射关系等:
本书有丰富的附录部,在附录中讲述了Hibernate常用的映射配置,Hibernate工具、XDoclet模板配置以及Hibernate的益友iBatis用法,还以卡片的形式列出了本书中所用的工具及软件,附录最后一部分是“快速启动代码”,供...
Hibernate是一个面向Java环境的对象...Hibernate不仅仅管理Java类到数据库表的映射(包括Java数据类型到SQL数据类型的映射),还提供数据查询和获取数据的方法,可以大幅度减少开发时人工使用SQL和JDBC处理数据的时间。
第7章 常用Hibernate映射配置说明 7.1 hibernate-mapping节点 7.2 class节点定义 7.3 id节点定义 7.4 属性/字段映射配置 第8章 Hibernate工具 8.1 准备工作 8.2 根据数据库定义生成映射文件——MiddleGen ...
本书有丰富的附录部,在附录中讲述了Hibernate常用的映射配置,Hibernate工具、XDoclet模板配置以及Hibernate的益友iBatis用法,还以卡片的形式列出了本书中所用的工具及软件,附录最后一部分是“快速启动代码”,供...
博文链接:https://llying.iteye.com/blog/220809
9.1.7. 隐式多态和其他继承映射混合使用 9.2. 限制 10. 与对象共事 10.1. Hibernate对象状态(object states) 10.2. 使对象持久化 10.3. 装载对象 10.4. 查询 10.4.1. 执行查询 10.4.2. 过滤集合 10.4.3. ...