将现有的hibernate功能集成到Grails中

时间:2015-02-21 17:56:37

标签: hibernate grails

我的同事和我继承了一个包含一些域类和弹簧上下文的jar,它为Hibernate创建了一个会话工厂。这是上下文文件的休眠片段的编辑版本:

<tx:annotation-driven transaction-manager="transactionManager" />

<bean id="dataSource" class="com.ours.OurDataSource">
    <constructor-arg value="dml-rdbms-data-source.properties" />
</bean>

<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="searchSessionFactory" />
</bean>

<!-- Hibernate SessionFactory -->
<bean id="searchSessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="dataSource">
        <ref local="dataSource" />
    </property>
    <property name="annotatedClasses">
        <list>
            <value>a.b.c.DefGhe</value>
            <value>a.b.c.Xyz</value>
        </list>
    </property>
    <property name="hibernateProperties">
        <bean class="our.com.ManagedPropertiesFactory" factory-method="getProperties">
            <constructor-arg value="hibernate.properties" />
        </bean>
    </property>
</bean>

我将sessionFactory bean更改为searchSessionFactory,以避免与内置的grails hibernate会话工厂发生名称冲突。这似乎没有帮助。尝试保存Grails生成的域类时,我仍然遇到此错误:

Unknown entity: x.y.z.DomClass; nested exception is org.hibernate.MappingException: Unknown entity: x.y.z.DomClass

有没有人遇到过必须将现有的hibernate功能集成到Grails中的情况?

1 个答案:

答案 0 :(得分:0)

这个问题现在似乎已经解决了,所以我们采取了解决问题的方法:

  1. 从resources.xml
  2. 中删除了所有内容
  3. 策略性地使用ClassPathXmlApplicationContext在需要它的grails代码中加载spring上下文。
  4. 部分问题是定义的dataSourcesessionFactorytransactionManager bean与Grails&#39;约定。 Grails根据DataSource.groovy中提供的数据生成它们。它正在接受这些定义,事情没有奏效,因为它被覆盖了。