gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 16:02:46 28 4
gpt4 key购买 nike

我和我的同事继承了一个jar,其中包含一些域类和一个Spring上下文,该上下文为Hibernate创建了 session 工厂。这是上下文文件的休眠部分的简化版本:

<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>

为了避免与内置的grails休眠 session 工厂发生名称冲突,我将sessionFactory bean更改为searchSessionFactory。这似乎没有帮助。尝试保存Grails生成的域类时,仍然出现此错误:
Unknown entity: x.y.z.DomClass; nested exception is org.hibernate.MappingException: Unknown entity: x.y.z.DomClass

有没有人遇到过这样的情况,他们必须将像这样的现有休眠功能集成到Grails中?

最佳答案

这个问题现在似乎已经为我们解决了,因此,我们为解决此问题做了以下工作:

  • 从resources.xml删除了所有这些内容
  • 从策略上使用ClassPathXmlApplicationContext将spring上下文加载到需要它的grails代码中。

  • 问题的部分原因是已定义的 dataSourcesessionFactorytransactionManager Bean与Grails的约定冲突。 Grails从DataSource.groovy中提供的数据生成它们。它正在接受这些定义,但由于被覆盖而无法正常工作。

    关于hibernate - 将现有的 hibernate 功能集成到Grails中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28649195/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com