0

TABLE_A

  • ID
  • 選別

TABLE_B

  • ID

ManyToMany 関連付けられたこれらのテーブルを使用して、REF テーブルがあります。

TABLE_REF

  • 援助
  • 入札

B.getAs() を使用してデータを取得しています

OrderBy TABLE_A.SORT フィールドとして取得したい。このため、OrderBy を追加しようとしましたが、A の近くにある B の関係で ORDER フィールドにアクセスできません。

というわけで、SORTフィールドもREFテーブルにJoinできれば、Bのリレーションマップで@OrderBy(clause="ORDER")パラメータが使えると思います。

しかし、何時間も解決策を見つけることができませんでした。

マッピングに使用するコードは次のとおりです。

表_A:

@ManyToMany(fetch=FetchType.EAGER, targetEntity = Role.class, cascade={CascadeType.MERGE, CascadeType.PERSIST})
@Fetch(FetchMode.SUBSELECT)
@JoinTable(name = "NC_ADMIN_ROLE_PAGE_XREF", joinColumns =
        @JoinColumn(name = "PAGE_ID", referencedColumnName = "ID"), 
    inverseJoinColumns = @JoinColumn(name = "ROLE_ID", referencedColumnName = "ID", nullable = true))
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region="ncAdminElements")
@BatchSize(size = 50)
private List<Role> allRoles = new ArrayList<Role>(10);

テーブル_B:

@Column(name = "NAME")
private String name;
@ManyToMany(fetch=FetchType.EAGER, targetEntity = Page.class, cascade={CascadeType.MERGE, CascadeType.PERSIST})
@Fetch(FetchMode.SUBSELECT)
@JoinTable(name = "NC_ADMIN_ROLE_PAGE_XREF", joinColumns = @JoinColumn(name = "ROLE_ID", referencedColumnName = "ID"), 
    inverseJoinColumns = @JoinColumn(name = "PAGE_ID", referencedColumnName = "ID", nullable = true))
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region="ncAdminElements")
@BatchSize(size = 50)
private List<Page> allPages = new ArrayList<Page>(10);

私がまさに欲しいのは、 TABLE_B.getAllPages() が TABLE_A.DISPLAY_ORDER で注文された

ダミーの休止状態でのマッピング関係に関するよくできた情報源は、私にとって適切です。

4

0 に答える 0