上一页 1 2 3 4 5 6 7 8 9 ··· 21 下一页
摘要: hibernate在加载数据的时候能自动的鉴别其正在的类型get支持多态,load只有把lazy设置为false时才支持多态使用HQL查询数据:List animalList=session.createQuery("from Animal").list();for(Iterator iter=animalList.iterator();iter.hasNext();){ Animal a=(Animal)iter.next(); if(a instanceof Pig) { System.out.println(a.getName()); }else if(a instance Bird) 阅读全文
posted @ 2011-02-19 22:59 魔战 阅读(272) 评论(0) 推荐(0)
摘要: 一,session在什么情况下清理缓存1,默认情况下,当应用程序提交事务,如commit()2,当我们显示调用flush的时候3,在执行某些查询的时候,如:iteratesession.flush()首先清理缓存,然后执行sql实例代码://因为user的主键生成策略是uuid,当session调用save()方法后,只是将user纳入了session的管理不会发出insert语句,但是user的id已经生成,session中existsInDatabase状态为false//因为user的主键生成策略是native,所以调用session.save后,将执行insert语句,返回id,并将u 阅读全文
posted @ 2011-02-19 17:49 魔战 阅读(629) 评论(0) 推荐(0)
摘要: lazy概念:只有真正使用该对象时,才会创建。对于hibernate而言,真正使用时才会发出SQLHibernate3.x,lazy默认是打开的Hibernate Lazy策略使用:<class>标签,可以取值true/false<property>标签,可以取值true/false<set><list>标签,可以取值true/false/extra<one-to-one> <many-to-one>单端关联,可以取值:false/proxy/noproxyload支持lazy,get不支持。=============== 阅读全文
posted @ 2011-02-19 17:19 魔战 阅读(527) 评论(0) 推荐(0)
摘要: package com.jonsion.hibernate;import java.util.Set;public class Role {private int id;private String name;private Set users;public int getId() {return id;}public Set getUsers() {return users;}public void setUsers(Set users) {this.users = users;}public void setId(int id) {this.id = id;}public String g 阅读全文
posted @ 2011-02-19 15:52 魔战 阅读(174) 评论(0) 推荐(0)
摘要: inverse属性:inverse主要用在一对多和多对多双向关联上,inverse可以被设置到集合标签<set>上,默认inverse为false,所以我们可以从"一"一端和"多"一端维护关联关系,如果设置成inverse为true,则我们只能从多一端来维护关联关系。inverse属性,只影响数据的存储,也就是持久化。一个用户可能拥有多个角色(user-->role)package com.jonsion.hibernate;public class Role {private int id;private String name;public int getId() {re 阅读全文
posted @ 2011-02-18 21:32 魔战 阅读(201) 评论(0) 推荐(0)
摘要: 建立对象模型1、注意:一对多关联映射,通常用Set这个集合,那么为什么用Set呢?我们可以这样理解:Set里面的对象是不能重复的。当然也可以用其他的。不过一般情况下用Set。一定要用Set这个接口,而不用HashSet。因为Hibernate中有延迟加载。实体对象就实现了延迟加载。也就是采用代理的方式。集合也有延迟加载。hibernate中对JDK中的Set集合进行了扩展,也就是实现了这个接口,所以不能用HashSet。所以要用Set接口。因为hibernate对Set有相应的实现,对Set进行了扩展。2、我们的Set里面就是Student对象的集合。这样就构成了一对多的关系。2.1 Clas 阅读全文
posted @ 2011-02-18 21:01 魔战 阅读(233) 评论(0) 推荐(0)
摘要: 主键关联映射:让两个对象的id保持相同,这样可以避免多余的字段被创建一对一主键关联映射,其中一个表的主键要引用另一个表的主键即引用外部主键。Person对象的配置文件:<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping> <class name="c 阅读全文
posted @ 2011-02-18 19:12 魔战 阅读(473) 评论(0) 推荐(0)
摘要: <hibernate-configuration><session-factory> <property name="hibernate.connection.url">jdbc:mysql://192.168.1.108/test1?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=gbk </property> <property name="hibernate.connection.dirver_class">com.mysql.jdbc.D 阅读全文
posted @ 2011-02-18 16:08 魔战 阅读(1005) 评论(0) 推荐(0)
摘要: 映射的本质是将关联关系映射到数据库,而关联关系是对象在内存中的引用关系。多对一的关系:多个对象对应一个对象,比如多个学生对应着一个班级,那么在对象的描述上只需要在学生类中持有一个班级对象的引用即可。<many-to-one>标签会在多的一端添加一个外键,指向一得一端,这个外键是由<many-to-one>中的column属性定义的,如果忽略属性,默认创建的外键与实体类的属性名相同。User对象:package com.jzq.hibernate;public class User {int id;String name;Group group;public Group 阅读全文
posted @ 2011-02-18 15:09 魔战 阅读(515) 评论(0) 推荐(0)
摘要: hibernate基本映射类---->数据库表普通属性---->表字段通过<class>映射到数据库表,通过<property>将普通属性映射到表字段,所谓的普通属性不包括自定义类,集合和数组等。一,实体类定义原则:1,实体类需要定义一个无参构造方法2,提供一个标识属性3,使用非final类4,为字段提供set和get访问器二,hibernate-mapping相关配置标签1,<hibernate-mapping default-access="field|property|ClassName"package="package.name"/>de 阅读全文
posted @ 2011-02-18 12:21 魔战 阅读(609) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 8 9 ··· 21 下一页