hibernate
文章平均质量分 58
ld513508088
这个作者很懒,什么都没留下…
展开
-
hibernate一对多单向关联
Hibernate 一对多关联:单向(从一的一端到多的一端)对象模型:Person: Integer personId, String name,Set addressesAddress:Integer addressId,关系模型:address表person表 Person.hbm.xml原创 2011-11-22 13:08:02 · 392 阅读 · 0 评论 -
Hibernate映射文件配置的若干常识
1、实体类最好有主键列,并有对应的getter、setter方法,主键类型最好使用对象类型,如Integer、String、Long等,而不是用int、String,long,因为如果主键为null,则表示该实体类没有保存到数据库,是一个临时状态(Transient),而基本类型不具备这些功能2、@配置中,如果某属性没有配置,则默认该属性名与数据表列名相同;而xml配置中,如果某属原创 2012-04-05 16:40:17 · 640 阅读 · 0 评论 -
hibernate中几个重要对象
SessionFactory:一个线程安全的session工厂,能为不同的线程生成不同的session,SessionFactory 维护着session相关的资源,包括数据库连接池、缓存等。一个SessionFactory维护着一个数据库,如果有多个数据库,可以创建多个SessionFactory。 Session:代表用户的一次操作,生命周期从SessionFactory.openSe原创 2012-04-05 10:23:14 · 621 阅读 · 0 评论 -
execute、executeQuery和executeUpdate之间的区别
JDBCTM中Statement接口提供的execute、executeQuery和executeUpdate之间的区别Statement 接口提供了三种执行 SQL 语句的方法:executeQuery、executeUpdate 和 execute。使用哪一个方法由 SQL 语句所产生的内容决定。 方法executeQuery 用于产生单个结果集的语句,例如 SELECT 语句转载 2012-09-28 12:59:56 · 343 阅读 · 0 评论 -
Hibernate连接池配置
Hibernate支持第三方的连接池,官方推荐的连接池是C3P0,Proxool,以及DBCP。在Hibernate连接池配置时需要注意的有三点:(1)、Apche的DBCP在Hibernate2中受支持,但在Hibernate3中已经不再推荐使用,官方的解释是这个连接池存在缺陷。如果你因为某种原因需要在Hibernate3中使用DBCP,建议采用JNDI方式。(2)、默认情况下(转载 2012-11-09 16:23:41 · 337 阅读 · 0 评论 -
session缓存理解
前奏知识点:1、 java对象在jvm中的生命周期?对象被创建分配内存空间,只要这个对象被引用变量引用,这个对象就不会被回收器回收。Java集合有一个重要特性,集合存放的是java对象的引用,当向集合中添加对象其实是向集合中添加对象的引用,因此集合没有清空集合中的对象就一直存活。2、 如果希望java中的对象A一直处于生命周期,就必须保证至少有一个引用变量引原创 2011-11-28 15:19:59 · 3812 阅读 · 1 评论 -
session.merge()
下面来讲讲Hibernate的merge方法。我打算按照hibernate对象生命周期的三个状态来讲。1:如果POJO对象处于游离态,我所说的游离态是指该对象的id值为空。hibernate判断一个对象在数据库中是否存在不是看对象的其他信息,而是判断该id在数据库中是不是存在。如果id为空,那自然是不存在,所以当我们调用merge方法的时候,就会直接执行插入操作。这一点有点像saveorupd转载 2013-01-23 15:29:20 · 700 阅读 · 0 评论 -
查询条件有null的情况
public JzcdWrongLog getJzcdWrongLog(String branchId, InsuranceInfo info, Date pickDate, String pickFlag) { log.debug("search JzcdWrongLog instance"); JzcdWrongLog jzcdWrongLog = null;原创 2013-03-12 15:48:25 · 899 阅读 · 0 评论 -
hibernate主键生成策略
1.assigned:主键由外部程序负责生成,无需Hibernate参与。----如果要由程序代码来指定主键,就采有这种。2.increment: 对 long , short 或 int 的数据列生成自动增长主键。increment主键生成方式的特点是与底层数据库无关性,大部分数据库如 Mysql,MSSQL 和ORACLE等都支持increament生成方式。此方式的实现机制为在当转载 2013-04-14 11:20:43 · 527 阅读 · 0 评论 -
Hibernate同时返回多个对象
1、返回Object[]数组:List list=session.createQuery("select c.name,c.mother,c.createDate from Cat c").list( );2、返回List类型List list2=session.createQuery("select new List(c.name,c.mother,c.createDate)原创 2012-04-05 16:37:19 · 1560 阅读 · 0 评论 -
hiernate数据更新模版代码
public void saveOrangeCategory(){ Session session =null; Transaction tx=null; try{ session=getSession(); tx=session.beginTransaction(); Category orangeCategory=new Category("duck"原创 2011-11-28 22:01:10 · 503 阅读 · 0 评论 -
继承关系树的每个具体类对应一张表
继承关系映射方式一:继承关系树的每个具体类对应一张表实体对象:Employee: Integer id; String name; Company company;(不创建表)Company: Integer id;String name;HourlyEmployees extendsEmployee:Integer id;String name;Double rate;S原创 2011-11-28 08:09:20 · 910 阅读 · 0 评论 -
hibernate一对一外键关联映射
一对一外键关联映射:在关系模型上多的一端持有一的一端一个引用,在关系模型上多的一端持有一的一端的外键。对象模型:Person: personId(Integer),name(String),age(Integer),idCard(IdCard)IdCard:id(Integer),usefulLife(Date),person(Person)关系模型:person表id原创 2011-11-23 10:41:42 · 645 阅读 · 0 评论 -
关联关系的级联操作
Hibernate 在默认的情况下,只保存对象的简单属性,对于复杂的属性不做处理,当让删除也同样如此。Department: id(Integer),name(String),employees(Set)----------------------------------存储---------------------------------------------Employee em原创 2011-11-23 19:28:06 · 443 阅读 · 0 评论 -
关于有序集合和多对多中inverse的用法
一对多维护关联关系是更新外键,多对多维护关联关系是在中间表中插入记录。 inverse 不能出现在list中,且inverse属性只会在集合中有,一般的字段没有该属性。cascade 是在所有的关联关系中都会有。 ——————————————在多对多的关联映射中————————————————————————————————————————————————Student: id(Integ原创 2011-11-23 20:38:16 · 1222 阅读 · 0 评论 -
hibernate 支持的集合类型
1、Hibernate 支持的集合:set,array,map,list,bag(在jdk中没有与其对应的集合)2、在映射文件中使用list做映射hibernate帮助维持顺序3、若在对象模型上使用list,而又不想hibernate帮着维持数据的顺序,映射文件中可以使用bag(假如在映射文件中使用了bag,在对象模型上就不允许使用set)4、在持久化类里,假如选择了set类型。要定义原创 2011-11-23 19:30:28 · 370 阅读 · 0 评论 -
继承关系的根类对应一个表
继承映射方式二:继承关系的根类对应一个表关系模型:Company:Integer id,String name,Set employees.Employee: Integer id, String name, Company company.(父类只含有子类的公共属性,以及关联类)HourlyEmployees extendsEmployee: double rate(每个子类原创 2011-11-28 08:11:36 · 475 阅读 · 0 评论 -
继承关系树每个类都对应一张表
继承关系映射方式:每个类都映射为一张表实体模型:Company:Integer id;String name;Set employees=newHashSet();Employee:Integer id;String name;Company company;父类只含有公共属性,以及关联类属性HourlyEmployees extendsEmployee:Integer emplo原创 2011-11-28 12:19:37 · 718 阅读 · 0 评论 -
Session接口中方法简介
Java对象在hibernate持久化层的状态:临时态:不被session关联,在数据库中没有相应的记录持久态:被session关联,在数据库中有对应的记录删除态:不被session关联,并且session已经计划从数据库中删除游离态:不被session关联,在数据库中有对应的记录Session接口详细用法:save():1、 用于保存临时态对象,是得临原创 2011-11-28 16:39:16 · 2752 阅读 · 0 评论 -
hibernate分页查询
Query q = sess.createQuery("from XXX");q.setFirstResult(20);设置起始行q.setMaxResults(10);每页条数List cats = q.list(); //得到每页的数据原创 2014-08-20 14:55:04 · 774 阅读 · 0 评论