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

Spring下使用Hibenrate annotation

阅读更多
随着Hibernate3.2ga的推出,hibernate-annotation-3.2ga和hibernate-entitymanager也随之推出。EntityManager还没有用过,但是Annotation却彻底解决了hbm文件和domain类同步的问题。hibernate-annotation的中文文档也很详细,感谢翻译者的辛勤劳动。
于是将正在进行的hibernate项目进行了升级,为了防止忘记,将步骤记录如下:
[list]
  • 将最新的hibernate.jar和hibernate-annotation.jar以及ejb3-persistence.jar加入classpath.
  • 修改spring配置文件中的sessionFactory:
  • <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
       <property name="dataSource"><ref bean="dataSource" /></property>
       <property name="annotatedClasses"><!-- or use &lt;property name="annotatedPackages"&gt; -->
      <list>				
        <value>security.user.model.User</value>
        <value>security.user.model.Dept</value>
      </list>
    </property>
    ..
    
  • 删除原有的hbm文件.
  • [/list]
    BTW,AnnotationSessionFactoryBean的annotatedPackages属性允许输入包名,但是我试了很多次没有成功,提示unmapped entity,还望达人指教。
    接下来最麻烦的是修改domain类,注意要保留原有的Xdoclet注释,以防万一。简单的办法是使用最新的HibernateTools,我们直接安装了JBossIDE2.0Beta2,简略的使用步骤为:
    • 使用向导建立一个Hibernate Configuration File(cfg.xml),同时创建一个console configuration,注意加入jdbc driver和ejb3-persistence.jar
    • 然后新建一个Hibernate Code Generation,同时创建reveng.xml,目的是配置反相工程的一些策略。注意正确的配置Exporters选项.
    • run!
    分享到:
    评论
    3 楼 diorsky 2007-04-16  
    Hibernate的annotatedPackages不是为了用来替代annotatedClasses,他会做其他一些事情,比如让你定义package-level annotations,Hibernate暂时还不支持通过包来自动加载annotated classes的方法,你或者可以通过配置方式把包下的class写到数据库或xml来读取classes.
    2 楼 diorsky 2007-04-16  
    Hibernate的annotatedPackages不是为了用来替代annotatedClasses,他会做其他一些事情,比如让你定义package-level annotations,Hibernate暂时还不支持通过包来自动加载annotated classes的方法,你或者可以通过配置方式把包下的class写到数据库或xml来读取classes.
    1 楼 lighter 2006-11-22  
    annotation,convention的影响力正在慢慢扩大.

    相关推荐

    Global site tag (gtag.js) - Google Analytics