几周前我开始学习 EJB,我对如何在客户端和服务器端重用实体类有疑问。假设我们有 CRUD 应用程序。
- 服务器以 EJB 形式编写并管理数据(创建、读取、更新、删除)。它使用 JPA 连接数据库。
- 客户端是使用 JSF2 编写的,它是一个简单的 gui,它使用远程 EJB 来管理数据。
- 两者(客户端和服务器)都在不同的服务器上工作。
- 要使用 EJB,客户端需要有 EJB 接口和实体(需要实体来反序列化 EJB 返回的对象)。
- 服务器端实体有 JPA 注释。
- 客户端实体需要与服务器相同,但不需要 JPA 注释。
- (客户端和服务器)实体都应该在同一个 jar 库中,因为它更易于维护。
这些是我解决问题的建议:
- 创建仅包含实体接口的库,以便客户端和服务器可以以他们需要的方式实现它。
- 创建包含没有 JPA 注释的实体实现的库(服务器将需要使用 xml 而不是注释)。
什么是最好的解决方案?我的解决方案正确吗?我将不胜感激任何建议。