1

我在启动和运行 Hibernate 和 Spring 时遇到了一些问题。我有一个 Web 服务器项目,它利用了其他几个具有持久实体的项目。我遇到的问题是我得到了一个实体类的 ClassNotFoundException,该实体类存储在 WEB-INF/libs 内的另一个 jar 中。

我是否需要为每个包含实体类的 jar 提供一个 persistence.xml?

如果您需要查看任何配置文件,请告诉我。

4

1 回答 1

1

根据您的设置,可能有许多不同的方法可以解决这个问题 - 他们通常都没有想法(IMO)。

本质问题与 ClassLoader 隔离有关。关于 jar 中的文件可以访问什么是有规则的。

在您的特定情况下,解决它的最简单方法可能是将persistence.xml 放在父Web 项目中。如果你没有使用持久化 xml,你需要从 web 项目中引导 hibernate/spring。

父 Web 项目应该可以访问其 WEB-INF/lib 中的所有库,而 libs 文件夹中的每个 jar 可能无法相互访问。

您可以在每个 jar 中设置另一个 persistence.xml,但它们不会组合在一起成为一个持久性单元。您需要根据您想要的实体使用不同的 pu。

于 2013-02-15T19:37:15.373 回答