Java 属性。我现在正在尝试Dozer方法-我的@ElementCollection列表字段似乎有问题,可能是因为缺少公共setter。在同一页中有多个表单,还是多个窗口?我看不出有什么问题。。。“同时”是什么意思?@tetsuo-我指的是不同会话中的多个用户。举

Java 属性。我现在正在尝试Dozer方法-我的@ElementCollection列表字段似乎有问题,可能是因为缺少公共setter。在同一页中有多个表单,还是多个窗口?我看不出有什么问题。。。“同时”是什么意思?@tetsuo-我指的是不同会话中的多个用户。举,java,wicket,jpa-2.0,Java,Wicket,Jpa 2.0,属性。我现在正在尝试Dozer方法-我的@ElementCollection列表字段似乎有问题,可能是因为缺少公共setter。在同一页中有多个表单,还是多个窗口?我看不出有什么问题。。。“同时”是什么意思?@tetsuo-我指的是不同会话中的多个用户。举个简单的例子,Alice打开联系人地址表单,而Bob打开针对同一客户的定价表单。如果Alice先点击“保存”,当Bob点击“保存”时,她的变化会发生什么?事实上,这有点复杂,因为有些表单是带有就地编辑的表格。我仍在努力理解为什么需要这样做。在您


属性。我现在正在尝试Dozer方法-我的
@ElementCollection
列表字段似乎有问题,可能是因为缺少公共setter。在同一页中有多个表单,还是多个窗口?我看不出有什么问题。。。“同时”是什么意思?@tetsuo-我指的是不同会话中的多个用户。举个简单的例子,Alice打开联系人地址表单,而Bob打开针对同一客户的定价表单。如果Alice先点击“保存”,当Bob点击“保存”时,她的变化会发生什么?事实上,这有点复杂,因为有些表单是带有就地编辑的表格。我仍在努力理解为什么需要这样做。在您给出的示例中:“Alice打开联系人地址表单,而Bob打开针对同一客户的定价表单。如果Alice先点击‘保存’,当Bob点击‘保存’时,她的更改会发生什么变化?”。答案是,只要Bob提交的表单没有绑定到任何这些字段,Alice的更改就不会发生任何变化。Bob提交时,表单模型加载实体(现在有Alice的更改)。然后使用Bob表单字段中的数据更新实体。其中一个关键驱动因素是表单在页面中的“我的代码”运行之前更新字段,从而在服务层有机会开始事务之前更新字段。如果有明确的证据表明Wicket在调用
begin
之前修改实体属性是安全和无竞争的,或者用新的
BeginTransactionViewFilter
替换
OpenEntityManagerViewFilter
时没有性能问题,我可能会跳过所有这些。否则(根据)我依赖于未定义的行为。我看到你的担心现在是一个可能的种族条件。这是一个有趣的答案,我以前从未见过。我将尝试一下,看看它对我来说是如何工作的。我现在详细查看了您的链接,并实现了我自己的变体,它使用Spring的
PlatformTransactionManager
来控制事务。它工作得很好,我的代码更清晰。@Adrian-你能分享一下代码吗?我很想看看它是如何与@Transactional annotations@交互的。@DuncanMcGregor-我已经将代码分离到一个库中,我将很快发布它。它不能很好地处理
@事务性
注释,但这并没有给我带来太多问题。我几乎所有的代码都是通过Wicket请求周期或CXF访问的,每一个都允许我轻松地截获请求结束并提交事务。我的服务层总是通过
JpaHandle
类提取实体管理器,在计时器线程上运行的少数服务手动管理它们的事务。