`

Spring下使用Hibenrate annotation

阅读更多

Spring下使用Hibenrate annotation

随着Hibernate3.2ga的推出,hibernate-annotation-3.2ga和hibernate-entitymanager也随之推出。EntityManager还没有用过,但是Annotation却彻底解决了hbm文件和domain类同步的问题。hibernate-annotation的中文文档也很详细,感谢翻译者的辛勤劳动。
于是将正在进行的hibernate项目进行了升级,为了防止忘记,将步骤记录如下:
  • 将最新的hibernate.jar和hibernate-annotation.jar以及ejb3-persistence.jar加入classpath.
  • 修改spring配置文件中的sessionFactory:
    Java代码 复制代码
    1. <bean id="sessionFactory" class="org.<SPAN class=hilite1>spring</SPAN>framework.orm.<SPAN class=hilite2>hibernate</SPAN>3.<SPAN class=hilite3>annotation</SPAN>.<SPAN class=hilite3>Annotation</SPAN>SessionFactoryBean">   
    2.    <property name="dataSource"><ref bean="dataSource" /></property>   
    3.    <property name="annotatedClasses"><!-- or use <property name="annotatedPackages"> -->   
    4.   <list>                 
    5.     <value>security.user.model.User</value>   
    6.     <value>security.user.model.Dept</value>   
    7.   </list>   
    8. </property>   
    9. ..  
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
       <property name="dataSource"><ref bean="dataSource" /></property>
       <property name="annotatedClasses"><!-- or use <property name="annotatedPackages"> -->
      <list>				
        <value>security.user.model.User</value>
        <value>security.user.model.Dept</value>
      </list>
    </property>
    ..
    
  • 删除原有的hbm文件.

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!
评论
diorsky 2007-04-16
Hibernate的annotatedPackages不是为了用来替代annotatedClasses,他会做其他一些事情,比如让你定义package-level annotations,Hibernate暂时还不支持通过包来自动加载annotated classes的方法,你或者可以通过配置方式把包下的class写到数据库或xml来读取classes.
diorsky 2007-04-16
Hibernate的annotatedPackages不是为了用来替代annotatedClasses,他会做其他一些事情,比如让你定义package-level annotations,Hibernate暂时还不支持通过包来自动加载annotated classes的方法,你或者可以通过配置方式把包下的class写到数据库或xml来读取classes.
lighter 2006-11-22
annotation,convention的影响力正在慢慢扩大.
分享到:
评论

相关推荐

    Hibenrate之多对多关联

    默认情况下,Hibernate采用懒加载策略,只有在实际访问集合属性时才会去查询数据库。如果希望在加载实体时同时加载关联的集合,可以使用`@Fetch(FetchMode.JOIN)`或在查询时使用`JOIN FETCH`。 总的来说,Hibernate...

    hibernate struts2 spring

    在这种模式下,Spring作为整体架构的基石,负责管理应用的生命周期和组件依赖;Struts2作为前端控制器,处理HTTP请求并调用业务逻辑;Hibernate则处理数据持久化,将Java对象与数据库记录进行映射。这种集成方式使得...

    图书馆之春:您可以在其中借书的图书馆Web应用程序。 这是Spring MVC和Hibernate项目

    数据库和配置MySQL 飞路(用于数据迁移) GradleTomcat吉特Google Book API 后端技术JavaSpring MVC,Spring AOP,Spring Security Hibernate ORM,Hibernate Validator,Hibenrate Search(Lucene) 翻新,JSON ...

    Hibernate更新某些字段

    在使用 Annotation 配置时,我们可以使用 @Column(updatable=false) 注解来设置某些属性的更新权限。例如,我们可以设置 age 属性的更新权限为 false: ```java @Column(updatable=false) public int getAge() { ...

    公交车查询系统,公交车查询系统

    公交车查询系统是一款基于Java技术栈,利用Spring框架和Hibernate ORM工具构建的Web应用程序,旨在为用户提供方便快捷的公交线路、站点及时刻查询服务。在这个系统中,用户可以通过输入公交线路号或者站点名称,获取...

    hibernatewuwei

    hibenrate的代码本人的培训的代码,老师讲解的很好。是一个学习hibenrate的好的工具

    hibernate学习资料

    hibernahibernate学习资料te学习资料hibernate学习资料v

Global site tag (gtag.js) - Google Analytics