在没有JPA API的情况下在客户端/表示层中使用JPA实体



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

在类路径上没有JPA API jar的其他层/客户机(只有包含实体类的jar)的情况下,这是否可以实现?或者他们需要这样来解决问题,比如:

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

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

编辑:只是为了让它更清楚。我正在询问在javaee环境之外,JPA API无法实现的可能解决方案。在没有JPA API的情况下,我可以避免为要发送到标准java客户端的每个Entity类编码DTO吗?

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

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

参考文献:

  • 在.ear文件中跨组件共享持久性单元

最新更新