我有个问题:
- 我在一个 Java EE 项目中工作,GUI 是由其他人编写的。
- 我创建了数据库
- 我编写了一个包含实体的 Java SE 应用程序(使用 Netbeans 7.1)(我让 Netbeans 从数据库中生成这些实体并安装它们)
- 我编写了测试类,编写了 ejb 并对其进行了测试。
- 然后,我编写了一个单例 Web 服务,其中注入了其他 bean。
- 我是 web 服务,我得到了预期的结果:可以获取所有实例的列表(数据库中的行),通过 ID 获取实例的实例,更新并保存它:所有 CRUD 操作都可以。
- 在客户端,一个 Java SE 应用程序(使用 Netbeans 7.1)中,我通过指定 WSDL URL(在 6 中创建的 Web 服务)添加了一个“Web 服务客户端”。
我得到的都是分离的物体。每个对象及其所有字段(作为字符串)除了 ID(主键)。而不是更新,我得到了一个插入(因为编辑的对象在客户端上没有 ID)。删除根本不起作用。其他操作(findAll、findById)都OK。我必须使用 DTO(数据传输对象)吗?我读到从 ejb3.1 开始不再需要这些
在客户端,对于 findAll 操作,Netbeans 不接受使用实体:它强制我使用自动生成的“dtos”,它具有与实体几乎相同的文件(除了主键或 ID),但作为字符串。