【发布时间】:2011-09-29 01:31:58
【问题描述】:
我正在开发一个基于 Java/Spring/Hibernate 的 Web 应用程序,该应用程序是在 Eclipse 中开发的。
这个网络应用实际上是两个不同的项目,它们复制了几个 Hibernate 实体类,以及它们各自的 Hibernate 存储库类。显然,将重复的代码移到外部 JAR 文件或其他文件中会很好。
从 Hibernate 文档中,我知道我应该将实体类放在一个包含 persistence.xml 文件的新 JAVA 项目中。我也知道我可以将这个项目导出到一个 JAR 中,并将它包含在我的主要项目的类路径中。此外,我知道我应该在我的主项目中从我的hibernate.cfg.xml 引用这个 JAR。
由于某种原因,我现在正在进行的项目似乎并不那么简单。
以下是问题:
在我保存共享代码的外部项目中,我也可以包含 Hibernate Repository 类吗?如果确实需要,应该如何在
persistence.xml中注明?在我的外部 JAR 中,
persistence.xml可以最小到多少?例如,主项目已经配置了休眠方言,那么我可以将其从外部 JAR 的persistence.xml中删除吗?从 Hibernate 文档中,我知道我可以使用
hibernate.cfg.xml中的<jar-file>标记来引用我的外部 JAR 文件。那么如果我的项目没有hibernate.cfg.xml怎么办?我们有一个用于 Spring 的配置 xml,它为org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean提供了一个annotatedClasses属性。我没有太多运气找到使用AnnotationSessionFactoryBean引用外部 JAR 文件的示例。
我试过在这个网站上四处搜索,但还没有找到任何类似的东西来帮助我。如果这是一个重复的帖子,或者一个愚蠢的明显问题或其他什么,我们深表歉意。
提前致谢:)
编辑:
好吧,看来我最终需要知道的是,假设我在我的类路径中包含了"MY_TEST.jar",并进一步假设"MY_TEST.jar" 有一个带注释的Hibernate 类:src.shared.myEntity.java
我将如何使用下面的 Spring 配置摘录来引用这个实体类? (无论我尝试什么,都会收到IllegalArgumentException: Cannot find class)
<bean id="my.postgres.sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource"
ref="my.postgres.dataSource" />
<property name="annotatedClasses">
<list>
<value>src.app.EntityA</value>
<value>src.app.EntityB</value>
</list>
</property>
.........
</bean>
【问题讨论】:
标签: hibernate spring jar entity external