|
|
1
1
你的用法似乎不错。请记住,em.merge(c)可能会将对客户机c所做的更改保存到数据库中。如果只想获取客户端C的用户列表而不保存对客户端C所做的更改,则可以执行以下操作:
或者更好的方法是,只需将客户机ID发送到getuserlistbyclient,而不是传递完整的客户机对象,只需保存少量的winsy内存:) |
|
|
2
2
的确,那是 open session in view 模式(在视图中也称为open entitymanager)。它也可以与ejb一起使用。理想情况下,事务应该在业务层/ejb中管理,这样就可以看到与纯层体系结构的轻微偏差。但它解决了视图中的延迟加载问题,而且很容易实现。 否则,您必须确保急切地加载事务结束后将使用的信息。或者你可以依赖DTO,但是它开始变得很麻烦。 下面是另外两个链接,它们涵盖了该主题并讨论了优缺点和备选方案:
|
|
|
reizintolo · HttpServletRequest中代理的访问用户 10 年前 |
|
|
Vijay Kumar · 容器管理EJB中的Bean管理事务 11 年前 |
|
|
a bouchenafa · “未捕获范围错误:超过了最大调用堆栈大小” 12 年前 |
|
|
Richard Santana · 数据库架构不是在EAR应用程序中生成的 12 年前 |