Hibernate面试题部分汇总集合(9)
时间:2025-02-28
时间:2025-02-28
此文档主要简绍J2EE中的hibernate面试突击问题部分集合
源,只需要创建一个代表该存储源的 SessionFactory对象,它被整个Java应 用共享。
MonkeyDAO 类封装了与 Monkey 对象有关的访问数据库的代码,参见例程 16-2。MonkeyDAO类通过 HibernateUtil类的 getCurrentSession()方法来得到 当前的Session对象。MonkeyDAO类的 getById()及 update()方法既不用管理 Session,也不用声明事务。
package my pack;
public c1ass MonkeyDAO (
pub1ic Monkey get By Id (long id) (
return (Mon key ) Hibernate Util . get CurrentS ession ( )
. get (Monkey . class , new Long (id) );
public void update (Monkey monkey) (
HibernateUtil. getCurrentSession()·saveOrUpdate(monkey)i)
Hibernate 到底如何管理 Session对 Java应用是透明的。无论是那种管理方 式,MonkeyDAO 类都不必自己创建 Session 对象,只需调用 HibernateUtil 类的getCurrentSession()方法,就能获得当前的 Session对象。而HibernateUtil类的getCurrentSession()方法实际上是调用 SessionFactory对象的
getCurrentSession()方法,来获得当前的 Session对象。由此可见,Hibernate 内部封装了管理 Session对象的生命周期的实现细节。当 Java 应用改变
Hibernate 的 Session 管理方式时,无须修改 Monkey 类、MonkeyDAO 类和 HibernateUtil 类的源代码,只需修改 Hibernate 的配置文件及
BusinessService 类就行了。 在 Hibernate 的配置文件中,hibernate.current-sessioncontext-class属性用于指定 Session管理方式,可选值包括:
●thread:Session对象的生命周期与本地线程绑定。
●jta:Session对象的生命周期与 JTA 事务绑定。
●managed:Hibernate委托程序来管理 Session对象的生命周期。