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

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

XMLWordPrintable

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major Major
    • 2.4.39
    • Affects Version/s: 2.4.38
    • Component/s: S2JDBC
    • None

      テーブル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が重複します。

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

              Created:
              Updated:
              Resolved: