5

List<Integer> findIds(String someVendor)特定のプロパティ値 (ベンダーなど) に一致するエンティティの ID のみを取得するpublic などのメソッドを作成する必要があります。

この例を考えると

public class Product{
    private int id;

    private String vendor;
}

ベンダーに合わせて制限条件を簡単に記述できます。

Criteria.list()しかし、私はどのように戻るかわかりませんInteger

return session.createCriteria(Producrt.class)
.add(Restrictions.eq("vendor",someVendor)
//What here?
.list();

また、C#/LINQ を使用していた場合、次のように記述します。

return (from products product where product.vendor == someVendor select id).ToList();

Hibernate/Java でプロジェクションを使用したことはありません。一致するエンティティの ID のみをリストに返すにはどうすればよいですか?

4

1 に答える 1

7

以下のコードを試してください。

sessionFactory.getCurrentSession().createCriteria(Product.class).add(
            Restrictions.eq("vendor", "vendor-value")).setProjection(Projections.property("id"))
于 2013-06-17T10:26:04.507 に答える