ber*_*ert 7 spring wicket hibernate jpa
我正在开发一个使用Wicket作为视图层和JPA(Hibernate)作为ORM的应用程序.使用Wicket构建UI非常有趣(即使使用ajax).我的问题来自于在编辑页面上集成持久对象(使用LoadadableDetachableModel只读页面没问题).
我正在使用spring的OSIV过滤器为视图提供一个打开的会话.但是,当我在编辑页面中保留域对象(@Entity映射类)时,当我在ajax回调中访问它们的属性时,我得到了可怕的延迟加载.
我真的不想走DTO/VO的道路,因为我认为它只会使代码变得臃肿,并且需要我编写大量的样板代码.
一种想法是在视图中使用模型对象,将传入的对象与当前的hibernate会话合并,并访问所有的getter以完全初始化对象.在此之后,对象将存储在视图(seesion)中并变为分离.保存后,我会重新合并它并提交更改.
这是推荐的方式吗?有更好的解决方案吗?奇怪的是,大多数书籍/博客/ howtos完全忽略了这样的问题.
你会建议什么交易管理?现在我在服务层使用@Transaction.如果我使用其他方式访问跨hibernate会话存储数据,会如何改变?
任何指针/链接都受欢迎,因为我有点迷失在这里..
提前致谢
这篇博文(详细介绍了LDM)给了我一些很好的见解,特别是对于编辑场景:
FWIW我在PerfBench中使用自定义RequestCycle(如上面链接的注释部分所示)得到了非常好的结果,你可以在这里找到代码.IIRC这是一种简化的方法(OpenSessionInView/London Wicket),来自Bozho发布的链接.
| 归档时间: |
|
| 查看次数: |
3145 次 |
| 最近记录: |