我有一个使用POJO的中等复杂的应用程序,现在将它迁移到EJB3.1,因此它可以在线部署,通过REST服务访问并从容器环境中受益(持久性是最重要的,但事务也很有用) .
自J2EE时代以来,我一直远离Java EE,并且正在努力解决实体bean的"损失"问题.我花了一段时间才意识到EJB3.1中的实体实际上并不是旧的意义上的Bean ... :)我已经阅读了许多EJB3书籍,包括O'Reilly Enterprise JavaBeans 3.1"手册",所有这些都解释了EJB3的概念和组件,但不是实现模式选项.
在我寻找Java EE 6模式的研究和调查中,我更倾向于采用Adam Bien的方法 - 特别是"持久域对象"(PDO)模式(在他的书中,但在此也进行了总结:http://download.java.net /general/podcasts/real_world_java_ee_patterns.pdf),它似乎与我目前的POJO应用程序提供最少的复杂性和最大的协同作用.PDO也与传统的面向对象的哲学和方法紧密结合,真正吸引我.
我没有重新讨论关于PDO的争论,而是有兴趣听听那些已经实施PDO的人以及在遇到困难时所做的工作.特别是我想知道你如何从 JPA实体调用容器中的其他服务(比如调用无状态会话bean等).
我也想知道是否有PDO模式的替代方案允许我维护应用程序结构(使用多态等),而不必为我的模型中的每个类创建会话bean和JPA实体.(我不想这样做,部分是因为重构所有单元和集成测试所需的大量练习,部分是因为 - 据我所知 - 我最终会尝试复制我的1toMany等对象关系穿过我的会话bean也似乎很疯狂).
有没有人有任何经验可以分享 - 或者如果你想指出我是一个白痴,并且错过了Java EE 6中那些基本的"欢迎":)
TIA