【发布时间】:2012-10-14 12:36:52
【问题描述】:
我有一个计费页面,其中包含多个类别的信息以及它们的价格、数量和总数
结算屏幕看起来像
客户名称:虚拟客户客户地点:虚拟地点
类别名称数量价格总计 测试类别 10 10 100 测试类别1 15 10 150
Total 250
添加新类别 OK Update Remove
屏幕上有“确定”、“更新”和“删除”三个按钮
一旦用户单击“确定”按钮,信息就会作为新的 tranx 保存到数据库中
Tranx 模型类似于
Master_Tranx 由以下组成的实体 TranxID Tranx_Total Customer Name Customer Place
然后是Tranx实体,由SerialNumber/category/Quantity/Price/Tranx_id组成
Master_Tranx 实体和 Tranx 实体之间的关系是这样的
Master_Traxn主键是Tranx_id,它连接到tranx_id,它是Tranx实体中的外键。
所以当用户按下 ok 时,在 Tranx 和 Master_Tranx 实体中会生成一条新记录
对于每张新账单,多行进入 Tranx 表,但单行插入 Master_Tranx 实体。
现在问题在于更新。
按确定按钮成功将数据创建到上述两个实体中,但是
假设用户想要更新任何现有的 tranx,例如在现有 traxn 中添加更多类别或更新可能是计费表的现有行的数量,用户需要在将所需的内容更新到屏幕。
我在这个更新按钮中实现代码的方式是这样的
我使用我需要进行更新的 tranx_id 。然后在计费屏幕中获取所有行。然后填充由 Tranx 实体组成的 Master_Tranx 实体,该 tranx 实体由所有计费表行组成。
然后使用实体管理器的merge()函数进行更新。
问题是当我按下更新按钮而不是更新现有的 tranx infomration 时。它会针对这个 tranx ID 添加新行
例如:我想创建一个新信息。我添加新行,如
类别名称数量价格总计 测试类别 10 10 100 测试类别1 15 10 150
然后我按 OK 按钮,然后生成一个 tranx ID
现在我想在现有的 tranxID 中再添加一个 tranx,例如
类别名称数量价格总计 测试类别 20 10 200 测试类别1 15 10 150 测试类别3 20 15 300
我还改变了第一行的数量,我从 10 做 20。然后我按下更新按钮
在针对 TranxEntity 的数据库中,我可以看到类似的行
1 测试类别 10 10 100 2 测试类别 1 15 10 150 3 测试类别 20 10 200 4 测试类别 1 15 10 150 5 测试类别3 20 15 300
虽然应该是这样的
1 测试类别 20 10 200 2 测试类别 1 15 10 150 3 测试类别3 20 15 300
谁能告诉我如何做到这一点
【问题讨论】:
标签: java jpa eclipselink