2009年4月2日
摘要: hibernate在单端关联上的lazy策略,可以取值:false/proxy/noproxy 标签上的lazy不会影响到单端关联上的lazy特性 例子: User.hbm.xml Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1 2 5 6... 阅读全文
posted @ 2009-04-02 14:38 将军 阅读(186) 评论(0) 推荐(0) 编辑
摘要: hibernate在集合上的lazy策略,可以取值:true/false/extra 标签上的lazy不会影响到集合上的lazy特性 例子: Classes.hbm.xml Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1 2 5 6 ... 阅读全文
posted @ 2009-04-02 14:33 将军 阅读(155) 评论(0) 推荐(0) 编辑
摘要: hibernate lazy策略可以使用在: * 标签上,可以取值:true/false * 标签上,可以取值:true/false需要类增强工具 * 标签上,可以取值:true/false/extra * 单端关联上,可以取值:false/proxy/noproxy lazy概念:只有真正使用该对象时,才会创建,对于hibernate而言,正真使用的时候才会发出sql hiberna... 阅读全文
posted @ 2009-04-02 14:25 将军 阅读(317) 评论(0) 推荐(0) 编辑
摘要: 1、理解如何映射 这种策略是使用union-subclass标签来定义子类的。每个子类对应一张表,而且这个表的信息是完备的, 即包含了所有从父类继承下来的属性映射的字段(这就是它跟joined-subclass的不同之处, joined-subclass定义的子类的表,只包含子类特有属性映射的字段)。实现这种策略的时候,有如下步骤: 父类用普通标签定义即可 子类用标签定义,在定义unio... 阅读全文
posted @ 2009-04-02 14:14 将军 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 1、理解如何映射 这种策略是使用joined-subclass标签来定义子类的。父类、子类,每个类都对应一张数据库表。 在父类对应的数据库表中,实际上会存储所有的记录,包括父类和子类的记录;在子类对应的数据库表中, 这个表只定义了子类中所特有的属性映射的字段。子类与父类,通过相同的主键值来关联。实现这种策略的时候, 有如下步骤: 父类用普通的标签定义即可 父类不再需要定义discri... 阅读全文
posted @ 2009-04-02 14:09 将军 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 1、理解如何映射 因为类继承树肯定是对应多个类,要把多个类的信息存放在一张表中,必须有某种机制来区分哪些记录是属于哪个类的。 这种机制就是,在表中添加一个字段,用这个字段的值来进行区分。用hibernate实现这种策略的时候,有如下步骤: 父类用普通的标签定义 在父类中定义一个discriminator,即指定这个区分的字段的名称和类型 如: 子类使用标签定义,在定义subclass... 阅读全文
posted @ 2009-04-02 14:04 将军 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 1.junit简介: * 编写测试类xxxTest,需要继承TestCase * 编写单元测试方法,测试方法必须以test开头,测试方法不能含有参数和返回值,如: public void testHello1() {} * 最好单元测试的代码单独建立一个目录 2.get和load的区别? * get不支持lazy,load支持lazy * 采用get加载数据,如果没有匹配的数据,返... 阅读全文
posted @ 2009-04-02 13:54 将军 阅读(580) 评论(0) 推荐(0) 编辑
摘要: 查询缓存是针对普通属性结果集的缓存 对实体对象的结果集只缓存id 查询缓存的生命周期,当前关联的表发生修改,那么查询缓存生命周期结束 查询缓存的配置和使用: * 在hibernate.cfg.xml文件中启用查询缓存,如: true * 在程序中必须手动启用查询缓存,如: query.setCacheable(true); hibernate.cfg.xml Code highlighti... 阅读全文
posted @ 2009-04-02 13:49 将军 阅读(369) 评论(0) 推荐(0) 编辑
摘要: 悲观锁的实现,通常依赖于数据库机制,在整个过程中将数据锁定,其它任何用户都不能读取或修改 PessimisticLockingTest.java Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1package com.bjsxt.hiberna... 阅读全文
posted @ 2009-04-02 13:43 将军 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 大多数基于数据版本记录机制(version)实现,一般是在数据库表中加入一个version字段 读取数据时将版本号一同读出,之后更新数据时版本号加一,如果提交数据时版本号小于或等于数据表中 的版本号,则认为数据是过期的,否则给予更新 Inventory.hbm.xml Code highlighting produced by Actipro CodeHighlighter (freeware)h... 阅读全文
posted @ 2009-04-02 13:40 将军 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 二级缓存也称进程级的缓存或SessionFactory级的缓存,二级缓存可以被所有的session共享 二级缓存的生命周期和SessionFactory的生命周期一致,SessionFactory可以管理二级缓存 二级缓存的配置和使用: * 将echcache.xml文件拷贝到src下 * 开启二级缓存,修改hibernate.cfg.xml文件 true * 指定缓存产品提供商,修改h... 阅读全文
posted @ 2009-04-02 13:21 将军 阅读(1024) 评论(0) 推荐(0) 编辑
摘要: 一级缓存很短和session的生命周期一致,一级缓存也叫session级的缓存或事务级缓存 那些方法支持一级缓存: * get() * load() * iterate(查询实体对象) 如何管理一级缓存: * session.clear(),session.evict() 如何避免一次性大量的实体数据入库导致内存溢出 * 先flush,再clear 如果数据量特别大,考虑采用... 阅读全文
posted @ 2009-04-02 12:57 将军 阅读(377) 评论(0) 推荐(0) 编辑