在没有JPA API的客户端/表示层中使用JPA Entity

时间:2013-07-07 11:38:37

标签: java-ee jpa ejb

我想将JPA实体类用作简单的POJO /数据持有者对象,以传递给企业应用程序的其他层/客户端。

这可以在没有其他图层/客户端在类路径上使用JPA API jar的情况下完成 - (只是让jar包含实体类)?或者他们是否需要这样来解决以下问题:

实体源代码中的

@OneToMany(mappedBy="owner",fetch=FetchType.EAGER)?

如果客户端/表示层中需要JPA API,它只是作为POJO与实体一起使用,那么避免使用JPA API依赖的必要性的最佳解决方案/替代方案是什么?

编辑:只是为了让它更清晰。我问的是java ee环境之外的可能解决方案,其中JPA API无法实现。我是否可以避免为没有JPA API的标准Java客户端发送的每个Entity类编码DTO?

1 个答案:

答案 0 :(得分:1)

如果您与其他在类路径上没有持久性API的应用程序共享您的Entity类,那么它们将无法加载您的类。那是因为JVM无法解析注释类。

但是,如果我们谈论的是Java EE意义上的企业应用程序,那么它们应该在其类路径上都有持久性API,因为它是标准的一部分。 API由所有Java EE应用程序服务器提供。在这种情况下,将您的实体类放在EAR的lib/目录中的JAR文件中,以便与项目的所有模块共享。

<强>参考文献: