Uploaded image for project: 'S2Container'
  1. S2Container
  2. CONTAINER-381

[S2JDBC] 1 対多および多対 1 関連で自己結合した場合,1 対多関連に重複するエンティティが設定される問題を修正しました.

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.4.38
    • Fix Version/s: 2.4.39
    • Component/s: S2JDBC
    • Labels:
      None

      Description

      テーブルparent、childがあり、child(as 子1)⇒parent(as 親)⇒child(as 子2) という結合を行った状況において、親がもつ子2リストに子1で取得したEntityが含まれる場合、子1が重複して取得されてしまいます。*To*EntityMapperImpで重複して追加することが原因に思えます。

      作成したテーブルは以下です。

      create table parent (
          id  number,
          name varchar2(20),
          primary key (id)
      );
      
      create table child (
          id number,
          parent_id number,
          name varchar2(20),
          primary key (id),
          foreign key (parent_id) references parent (id)
      );
      
      insert into parent values (1, '親その1');
      insert into child values (1, 1, '子その1');
      insert into child values (2, 1, '子その2');
      

      実行したメソッドは以下です。

              List<Child> childList =
                  jdbcManager.from(Child.class).innerJoin("parent").innerJoin(
                      "parent.childList").id(1).getResultList();
      

      childList.get(0).parent.childList で子その1が重複します。

        Attachments

          Activity

            People

            • Assignee:
              koichik koichik
              Reporter:
              shinsuke shinsuke
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: