`
lkj107
  • 浏览: 108474 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用Hibernate Synchronizer3.19集成spring和Hibernate3

    博客分类:
  • J2EE
阅读更多

原文地址:http://www.supergloo.com/blog/index.php/2006/11/16/using-hibernate-synchronizer-319-with-spring-and-hibernate-3/

本文指导你如何使用最新的 Hibernate Synchronizer 来与 spring 框架集成。(认为你已经安装好 Hibernate Synchronizer )。

有五种实现方法 , 下面介绍如何把 Hibernate3 spring 以及 Hibernate Synchronizer 。希望对你有所帮助,可以参照 Hibernate Synchronizer and Spring

第一步 更新某一项目的 Hibernate Synchronizer 设置

设置Hibernate Synchronizer设置使用用户的base root。

菜单: Project->Properties->Hibernate Synchronizer->Data Access Objects tab->选中 “I would like to use a custom root” 并输入 SpringBaseRootDAO 全路径 ; 例如com.codesponsors.data.dao.SpringBaseRootDAO.

import  org.hibernate.Criteria;
import  org.hibernate.HibernateException;
import  org.hibernate.Session;

import  org.springframework.dao.DataAccessException;
import  org.springframework.orm.hibernate3.HibernateTemplate;

/** */ /**
 * Based on Hibernate Synchronizer
 * For more information or documentation, visit The Hibernate Synchronizer page
 * at 
http://www.binamics.com/hibernatesync  or contact Joe Hudson at joe@binamics.com.
 * 
 * 
@author  Joe Hudson
 * 
@author  Todd McGrath mcgrath@supergloo.com
 
*/

public   abstract   class  SpringHibernate3BaseRootDAO  extends  HibernateTemplate  ... {
 
    
/** */ /**
     * Return the name of the configuration file to be used with this DAO or null if default
     
*/

    
public  String getConfigurationFileName ()  ... {
        
return   null ;
    }


    
/** */ /**
     * Return the specific Object class that will be used for class-specific
     * implementation of this DAO.
     * 
@return  the reference Class
     
*/

    
protected   abstract  Class getReferenceClass();

    
/** */ /**
     * Return a Criteria object that relates to the DAO's table
     
*/

     
protected  Criteria createCriteria (Session s)  throws  DataAccessException  ... {
         
return  s.createCriteria(getReferenceClass());
     }


    
/** */ /**
     * Return a Criteria object that relates to the DAO's table
     
*/

     
public  Criteria createCriteria ()  throws  HibernateException  ... {
        Session s 
=  getSessionFactory().openSession();
        
return  s.createCriteria(getReferenceClass());
     }
     

    
/** */ /**
     * Return the property of the class you would like to use for default ordering
     * 
@return  the property name
     
*/

    
public  String getDefaultOrderProperty ()  ... {
        
return   null ;
    }



}
;.更新 Hibernate Synchronizer 使用用户异常类. 同一个界面. 输入 “org.springframework.dao.DataAccessException” 在DAO异常输入框

第二步 更新所有项目的 Hibernate Synchronizer 全局设置

 

1. Eclipse 菜单, 点击Window->Preferences

2. 在左边控制板上点击Hibernate Synchronizer

3. 选择Snippets

4. 更新 Base DAO Snippets

a) 打开Base DAO
b) 替换action方法为

/** */ /**
     * Persist the given transient instance, first assigning a generated identifier. (Or using the current value
     * of the identifier property if the assigned generator is used.) 
     * 
@param  ${class.VarName} a transient instance of a persistent class 
     * 
@return  the class identifier
     
*/

    
public  $ ... { class .ParentRoot.Id.Property.ObjectClass}  save($ ... { class .AbsoluteValueObjectSignatureClassName}  $ ... { class .VarName} )
#
if  ($exceptionClass)
        
throws  $ ... {exceptionClass}   ... {
#
else
    
... {
#end
        
return  ($ ... { class .ParentRoot.Id.Property.ObjectClass} super .save($ ... { class .VarName} );
    }


    
/** */ /**
     * Either save() or update() the given instance, depending upon the value of its identifier property. By default
     * the instance is always saved. This behaviour may be adjusted by specifying an unsaved-value attribute of the
     * identifier property mapping. 
     * 
@param  ${class.VarName} a transient instance containing new or updated state 
     
*/

    
public   void  saveOrUpdate($ ... { class .AbsoluteValueObjectSignatureClassName}  $ ... { class .VarName} )
#
if  ($exceptionClass)
        
throws  $ ... {exceptionClass}   ... {
#
else
    
... {
#end
        
super .saveOrUpdate($ ... { class .VarName} );
    }



    
/** */ /**
     * Update the persistent state associated with the given identifier. An exception is thrown if there is a persistent
     * instance with the same identifier in the current session.
     * 
@param  ${class.VarName} a transient instance containing updated state
     
*/

    
public   void  update($ ... { class .AbsoluteValueObjectSignatureClassName}  $ ... { class .VarName}
#
if  ($exceptionClass)
        
throws  $ ... {exceptionClass}   ... {
#
else
    
... {
#end
        
super .update($ ... { class .VarName} );
    }



c) 替换finder方法为

# if  ($ class .ParentRoot.Id)
    
public  $ ... { class .AbsoluteValueObjectSignatureClassName}  load($ ... { class .ParentRoot.Id.Property.AbsoluteSignatureClassName}  key)
#
if  ($exceptionClass)
        
throws  $ ... {exceptionClass}   ... {
#
else
    
... {
#end
#
if  ($ class .ParentRoot.Id.Property.isPrimitive())
        
return  ($ ... { class .AbsoluteValueObjectSignatureClassName} ) load(getReferenceClass(),  new  $ ... { class .ParentRoot.Id.Property.ObjectClass} (key));
#
else
        
return  ($ ... { class .AbsoluteValueObjectSignatureClassName} ) load(getReferenceClass(), key);
#end
    }

#end

分享到:
评论

相关推荐

    hibernateSynchronizer与spring集成

    在整合Hibernate Synchronizer与Spring框架的过程中,我们主要关注的...但以上内容涵盖了基本的Hibernate Synchronizer与Spring集成的核心知识点。理解并正确配置这些组件将有助于构建一个稳定、高效的Java企业级应用。

    HibernateSynchronizer3扩展JPA

    使用HibernateSynchronizer3时,开发者需要配置好数据库连接信息,然后指定需要生成的`.hbm`文件。工具会根据这些文件自动生成对应的实体类,同时,如果选择启用SSH生成功能,还会生成Controller、Service、DAO以及...

    HibernateSynchronizer(2.3.1 & 3.1.9)

    HibernateSynchronizer是一款强大的工具,它集成了Hibernate和Spring框架,主要用于数据库模型与Java实体类的同步,大大提升了开发效率。本篇将详细介绍HibernateSynchronizer的两个主要版本——2.3.1和3.1.9,并...

    HibernateSynchronizer的安装与使用

    HibernateSynchronizer 是一个针对 Hibernate 框架的插件,它简化了开发过程中的配置和对象-关系映射(ORM)文件的创建。通过自动生成 Hibernate 的配置文件(hibernate.cfg.xml)、映射文件(.hbm.xml)以及 Plain ...

    Hibernate Synchronizer 插件使用

    本文将深入探讨 Hibernate Synchronizer 的主要功能和使用技巧,以帮助开发者更好地利用这一强大工具。 #### 映射文档编辑器:智能与直观 Hibernate Synchronizer 的核心优势之一在于其为映射文档提供的专业化编辑...

    HibernateSynchronizer 支持eclipse4.* 版本

    HibernateSynchronizer 是一款非常简单实用的eclipse插件,但是作者多年前就停止了维护,所以再eclipse 4.* 版本上无法再实用这款插件,这对很多使用这款插件的开发者来说非常不方便。尤其是eclipse高版本对高分屏的...

    hibernatesynchronizer_3.1.9

    Hibernate Synchronizer是一款强大的工具,专为简化Hibernate在Eclipse环境中的配置和管理而设计。它通过自动同步数据库模型与Java实体类,极大地提升了开发效率,减少了手动调整代码的工作量。在本文中,我们将深入...

    HibernateSynchronizer-3.1.9

    3. **对比分析**:接着,HibernateSynchronizer将当前的对象模型与数据库的实际结构进行对比,找出差异。 4. **生成SQL**:找到差异后,工具会自动生成相应的增加、修改或删除表结构的SQL脚本。 5. **执行SQL**:...

    Hibernate Synchronizer2.3.1.rar

    通过集成到Eclipse或IntelliJ IDEA等IDE中,Hibernate Synchronizer能够监控数据库的改变,并自动生成或更新与之对应的Java POJO(Plain Old Java Object)类,极大地提高了开发效率。 在Hibernate Synchronizer ...

    安装Hibernate Synchronizer

    Hibernate Synchronizer是一款用于辅助开发人员在Eclipse集成开发环境(IDE)中进行Hibernate框架开发的工具。它通过提供一系列的辅助功能,如代码生成、数据库同步等,极大地提高了开发效率。尤其对于那些需要频繁地...

    com.hudson.hibernatesynchronizer_3.2.zip

    《HibernateSynchronizer 3.2深度解析及应用》 ...理解并熟练掌握HibernateSynchronizer的使用,能够极大地提高数据库管理和维护的效率,降低开发成本,对于Java EE项目的开发和维护具有重要价值。

    Eclipse Hibernate Synchronizer插件操作数据库

    Eclipse Hibernate Synchronizer插件是一款强大的开发工具,它为Eclipse IDE提供了集成的Hibernate支持,使得数据库操作和对象关系映射(ORM)更加便捷。这个插件的主要目标是简化数据库与Java实体类之间的同步过程...

    Hibernate Synchronizer 插件重大缺陷改正

    标题与描述均提到了“Hibernate Synchronizer 插件重大缺陷改正”,这表明文章或讨论主要聚焦于解决在使用Hibernate Synchronizer插件时遇到的关键问题。Hibernate Synchronizer插件通常用于同步数据库操作,例如在...

    Hibernate Synchronizer

    Hibernate Synchronizer是一款强大的开发工具,专为Java开发者设计,主要用于简化Hibernate对象关系映射(ORM)框架的使用。它作为一个Eclipse或IntelliJ IDEA的插件,帮助开发者实现数据库与Java类之间的自动映射,...

    hibernateSynchronizer

    综上所述,hibernateSynchronizer插件和Hibernate Validator是Hibernate框架中两个非常实用的工具,它们分别解决了ORM映射文件和Java类的自动生成以及数据验证的问题,为Java开发带来了极大的便利。通过熟练掌握并...

    HibernateSynchronizer

    HibernateSynchronizer

Global site tag (gtag.js) - Google Analytics