收藏本站

hibernate 动态更新注意事项

使用hibernate 动态更新能一定程度的优化我们的数据库,但是有时需在加载对象后对部分属性处理后传递给页面的时,在事务提交时会自动update 到数据库。下面就来分析动态更新何时生效:

	Configuration cf = new Configuration().configure();
	SessionFactory sf =cf.buildSessionFactory();
        Session session = sf.openSession();  
        Transaction transaction = session.beginTransa...

阅读全文>>

hibernate get load 区别

get和load方式是根据id取得一个记录
下边详细说一下get和load的不同,因为有些时候为了对比也会把find加进来。

 1.从返回结果上对比:

load方式检索不到的话会抛出org.hibernate.ObjectNotFoundException异常
get方法检索不到的话会返回null

 

2.从检索执行机制上对比: get方法和find方法都是直接从数据库中检索 而load方法的执行则比较复杂首先查找session的persistent Context中是否有缓存,如果有则直接返回 如果没有则判断是否是lazy,如果不...

阅读全文>>

hibernate3 generated 和 access 属性

    generated 用于有数据库默认值的获取方式设置。枚举类型有‘never’,‘insert’,‘always’ 三个可选值,默认never。

    never(默认):标明此属性值不是从数据库中生成, 也就是根本不用刷新实体类了。

    insert:标明此属性值在insert的时候生成,但是不会在随后的update时重新生成。也就是只在insert情况下才会刷新实体类。

    alway...

阅读全文>>

java 事务与spring 声明式事务

Spring声明式事务让我们从复杂的事务处理中得到解脱。使得我们再也无需要去处理获得连接、关闭连接、事务提交和回滚等这些操作。再也无需要我们在与事务相关的方法中处理大量的try…catch…finally代码。
我们在使用Spring声明式事务时,有一个非常重要的概念就是事务属性。事务属性通常由事务的传播行为,事务的隔离级别,事务的超时值和事务只读标志组成。我们在进行事务划分时,需要进行事务定义,也就是配置事务的属性。

Spring在TransactionDefinition接口中定义这些属性,以供PlatfromTransactionManager使用, PlatfromTrans...

阅读全文>>

getCurrentSession() 与 openSession 异同分析

区别

getHibernateTemplate().getSessionFactory().openSession()

getHibernateTemplate().getSessionFactory().getCurrentSession()



getCurrentSession ()   使用当前的 session

openSession()         重新建立一个新的 session


------------...

阅读全文>>

hibernate 自身管理配置实例

    在数据库设计中,我们常碰到一些表,它们管理自身。例如栏目,有子栏目,通常表中有个关联父级栏目的字段。在hibernate 配置中我们通常可以当作关联的不同表来处理。

阅读全文>>

Spring 中常用的事务类型

Spring中常用事务类型:

PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。

PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。

PROPAGATION_MANDATORY--支持当前事务,如果当前没有事务,就抛出异常。

PROPAGATION_REQUIRES_NEW--新建事务,如果当前存在事务,把当前事务挂起。

PROPAGATION_NOT_SUPPORTED--以非事务方式执行操作,如果当前存在事务,就把当前事务...

阅读全文>>

hibernate outer-join 作用及用法

1、outer-join关键字 (many-to-one的情况)
outer-join 关键字有3个值,分别是true,false,auto,默认是 auto。true: 表示使用外连接抓取关联的内容,这里的意 思是当使用load(OrderLineItem.class, “
id“
)时,Hibernate只生 成一条SQL语句将OrderLineItem与他的父亲Ord er全部初始化。select * from OrderLin eItem o left join Order p on o .OrderId=p.OrderId where o.Or derLineItem...

阅读全文>>

hibernate 作用与缺点

Hibernate 作为java 界最流行的框架之一。很多初学者争着要学习它,设计者也将其设计的程序中使用了hibernate 为豪。而更多的人只是停留在使用它的层面上,当然这是正常,但我认为虽然不需要从头到尾去读起源代码,和掌握其设计思想,最少应该了解其优缺点,自己不读源码,就只能靠读过的人给出了。下面是我了解到的一些hibernate 特点,有从同行处了解到的,也有自己读源码及使用过程积累到的,仅供大家参考。

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。

Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取...

阅读全文>>