1

(オプションで) 関連付けられたオブジェクトの属性で並べ替えて、Hibernate データセットを並べ替えようとしています。私は関連付けによる休止状態の順序の例に従いました-そしてそれはある程度機能します。関連付けられたオブジェクトがない場合に問題が発生し、レコード全体が無視されます。

オブジェクトの関連タイプを外部結合に変更すると、問題が解決しますか? もしそうなら、誰かが私に正しい指示を向けてもらえますか?

どうもありがとう。

4

2 に答える 2

1

コードを 1 行変更するだけで問題を解決できました。Criteria オブジェクトを作成するときに、パラメーター JoinFragment.LEFT_OUTER_JOIN を渡すことができました。例えば:

    Criteria subCriteria = criteria.createCriteria(subTypeName, JoinFragment.LEFT_OUTER_JOIN);
于 2012-10-16T14:11:39.227 に答える
1

参照されている質問は基準クエリを使用しているため、それらの回答が必要なのか、それとも HQL だけが必要なのかわかりません。次のようなエンティティがある場合、HQL は問題ないと仮定します。

class EntityA {
   private Long id;
   @OneToMany
   private EntityB b;

   ....
}

class EntityB {
  private Long id;
  private String name;
}

EntityA と EntityB の間にオプションの OneToMany 関係がある場合、次のようなクエリを使用できるはずです。

"SELECT obj FROM " + EntityA.class.getName() + " obj LEFT JOIN obj.b obj2 ORDER BY obj2.name";

フィールドごとに並べ替えて、存在する場所とEntityA結合されたすべてを選択する場所。EntityBEntityB.name

于 2012-10-15T18:23:10.267 に答える