我们如何在两个webapps之间使用JPA2(Hibernate)实体作为DTO?

时间:2011-02-21 10:20:08

标签: hibernate glassfish jpa-2.0

你好 我们正在运行Glassfish 3.0.1并使用Hibernate 3.5.3。 我们的项目设置如下:

frontend.war

common.jar

backend.war

我们希望将jpa2带注释的实体放在common.jar中,后端将这些实体视为JPA2实体,但前端应该只将它们视为POJO / DTO。我们认为这可以通过将persistence.xml放入其中来实现 backend.war并且在前端没有persistence.xml。这不起作用,在启动后端并调用entityManager.getMetamodel()。getEntities()后,我们得到一个空列表。所有查询都以exeptions失败:“不是实体:com.example.model.OurEntity”。

我们在common.jar中尝试使用和不使用beans.xml。

知道我们做错了什么吗?是否可以在JPA2中使用此结构?

1 个答案:

答案 0 :(得分:5)

如果带注释的实体与persistence.xml不在同一文件中,则需要将<jar-file>添加到persistence.xml。根据您的设置,它可能如下所示:

<jar-file>lib/common.jar</jar-file>