0

javas から JQL を使用することについて質問があります。関係を持つ 3 つのモデル x、y、z がある場合:

モデル X:

@GeneratedValue(strategy = GenerationType.IDENTITY)
   @Column(name = "x_ID")
   private Long xId;

   @Column(name = "A")
   private string  a;

   @JsonIgnore
   @OneToMany(mappedBy = "x")
   private List<y> yList;

モデル z:

@GeneratedValue(strategy = GenerationType.IDENTITY)
   @Column(name = "z_ID")
   private Long zId;

   @JsonIgnore
   @OneToMany(mappedBy = "z")
   private List<y> yList;

モデルy:

 @Id
   @GeneratedValue(strategy = GenerationType.IDENTITY)
   @Column(name = "y_ID")
    private Long yId;

    @ManyToOne(fetch = FetchType.LAZY)
    @PrimaryKeyJoinColumn(name = "x_ID")
    private x x1;

    @Column(name = "x_ID")
    private Long xId;

    @ManyToOne(fetch = FetchType.LAZY)
    @PrimaryKeyJoinColumn(name = "z_ID")
    private z z1;

    @Column(name = "z_ID")
    private Long zId;

スナップショット テーブルに保存されたもののサンプルを次に示します。

x 状態の場合:

{ "A": "test", "y": [],"xId": 1}

z 状態の場合:

{ "y": [],"zId":1}

y 状態の場合:

{ "yId": 1, ,"xId": 1, "zId":1}

私の質問は、テストで検索する 3 つの状態から変更を取得する方法です。

4

1 に答える 1

0

一般に、JQL には、エンティティに対する SQL のような結合はありません。

したがって、OneToMany 関係で結合された 2 つのエンティティ (X と Y) がある場合、次のようにクエリを実行することはできません。

ただし、モデルを少し変更すると、これを実現できます。Y がエンティティ X が所有するValueObject (ID のないオブジェクト) である場合、JQL でクエリを実行できます。

于 2015-11-29T07:08:26.053 に答える