2012-01-13 75 views
0

我有一个母子表。用户可以在选择主项目/实体后添加/删除子项目。当主项目列表选择索引改变时,我从数据库中填充此选定主项目的子项目的子表格/数组列表。我打开实体管理器,启动事务,当用户点击相应的子添加/删除按钮时,坚持或删除子实体/项目。我的问题是保持新的和删除的子实体的轨道,而用户选择另一个主项目。因为我在填充新的选定主项目的子实体之前清除子表/ Arraylist(但不清除持久化上下文)。当用户再次选择前一个主项目时,我想反映新的/已移除但未提交的子项目。希望正确解释了我的问题。在JPA上使用hibernate。谢谢。如何获得JPA实体持久/删除但未提交?

回答

0

那么,只需执行查询以获取所选主控的所有子项。即使事务还没有提交,事务也会在数据库中看到它们,因为它已经保存了它们。

但是,请注意,使用长事务不可扩展,并会导致各种锁定和陈旧问题。为什么不保存孩子,每次用户添加或移除孩子时都会犯下错误?

+0

我也预计它那样。奇怪。昨天它没有按预期工作,今天是。不管怎么说,还是要谢谢你。我正在开发的项目是一个javaFX程序,只能在少数用户的桌面上运行。这就是为什么保持交易很长时间。 – 2012-01-13 09:34:58

0

我宁愿不保持用户点击之间的事务打开。他可以去咖啡休息并离开。我宁愿使用临时表,会话,缓存,隐藏输入(如果它是网络前端)等

+0

你能解释一下会话和缓存吗?你在jpa环境中提到这些吗?我的项目中没有Web服务器或Web应用程序,连接池和Web前端。 – 2012-01-13 11:18:26