価格レート、数量、合計とともにいくつかのカテゴリの情報で構成される請求ページがあります
請求画面はこんな感じ
顧客名 : Dummy Customer 顧客の場所 : Dummy Place
カテゴリ名 数量 価格 合計 TestCategory 10 10 100 TestCategory1 15 10 150
Total 250
新しいカテゴリを追加 OK 更新 削除
画面には「OK」「更新」「削除」の3つのボタンがあります。
ユーザーが [OK] ボタンをクリックすると、情報が新しい tranx としてデータベースに保存されます。
Tranxモデルは次のようなものです
Master_Tranx TranxID Tranx_Totalで構成されるエンティティ 顧客名 顧客の場所
次に 、SerialNumber/category/Quantity/Price/Tranx_id で構成されるTranxエンティティ
Master_Tranx エンティティと Tranx エンティティの関係は次のようになります
Master_Traxn の主キーは、Tranx エンティティの外部キーである tranx_id に接続された Tranx_id です。
したがって、ユーザーが [OK] を押すと、Tranx および Master_Tranx エンティティで新しいレコードが生成されます
新しい請求書ごとに、複数の行が Tranx テーブルに入りますが、単一の行が Master_Tranx エンティティに挿入されます。
今問題はアップデートにあります。
OKボタンを押すと、上記の2つのエンティティにデータが正常に作成されますが、
ユーザーが、既存の traxn にいくつかのカテゴリを追加したり、課金テーブルの既存の行の数量を更新したりするなど、既存の tranx のいずれかを更新したいとします。ユーザーは、必要なものを画面に更新した後、更新ボタンを押す必要があります。
この更新ボタンにコードを実装した方法は次のようになります
update を行う必要がある tranx_id を取得します。次に、請求画面のすべての行を取得します。次に、Tranx エンティティで構成される Master_Tranx エンティティにデータを入力し、この tranx エンティティはすべての課金テーブル行で構成されます。
次に、エンティティ マネージャーの merge() 関数を使用して更新を行います。
問題は、既存の tranx infomration を更新するのではなく、更新ボタンを押したときです。この tranx ID に対して新しい行を追加します
例:新しい情報を作成したい。次のような新しい行を追加します
カテゴリ名 数量 価格 合計 TestCategory 10 10 100 TestCategory1 15 10 150
次にOKボタンを押すと、tranx IDが生成されます
ここで、次のように既存の tranxID にもう 1 つ tranx を追加します。
カテゴリ名 数量 価格 合計 TestCategory 20 10 200 TestCategory1 15 10 150 TestCategory3 20 15 300
また、1行目の数量を10から20に変更し、更新ボタンを押します
TranxEntity に対する DB では、次のような行が表示されました
1 TestCategory 10 10 100 2 TestCategory1 15 10 150 3 TestCategory 20 10 200 4 TestCategory1 15 10 150 5 TestCategory3 20 15 300
それは次のようなものでなければなりませんが
1 TestCategory 20 10 200 2 TestCategory1 15 10 150 3 TestCategory3 20 15 300
誰でもこれを達成する方法を教えてもらえますか