37

Hibernateを使用して、オブジェクト全体ではなく単一の列を選択したいと思います。これまでのところ私はこれを持っています:

 List<String> firstname = null;

 firstname = getSession().createCriteria(People.class).list();

私の問題は、上記のコードが「名」だけでなく、Peopleテーブル全体をオブジェクトとして返すことです。オブジェクト全体ではなく「名」のみを返すように指定する方法がわかりません。

4

3 に答える 3

47

次のようにプロジェクションを設定できます。

.setProjection(Projections.property("firstname"))

これを使用すると、代わりに名のみを取得できます。

同じシナリオのスタックに別のリンクが見つかりました。これが、休止状態の基準を使用して、オブジェクト全体ではなく、オブジェクトの1つの要素のみを返す方法にも役立つことを願っていますか?

于 2012-05-18T12:11:39.133 に答える
2

条件ベース射影が必要な場合は、ProjectionList を使用できます。

  ProjectionList prjection = Projections.projectionList();
if(abc){
    prjection.add(Projections.property("firstname"));
}
else if(xyz){
    prjection.add(Projections.property("lastname"));
}

    ........

    criteria.setProjection(prjection);
于 2014-11-03T10:53:27.983 に答える