3

forum.hibernate.org/viewtopic.php?p=2378849

ポスターの1つがこの答えを出します:

プロジェクション (...) を作成し、それにエイリアスを与える必要があります。その後、エイリアスで並べ替えることができます。詳細を投稿する時間はありませんが、うまくいくと確信しています。

Projection を使用してsubqueryを実行し、そのサブクエリを Alias として使用し、その Alias で注文するクエリの Criteria API を使用して、誰かが簡単な例を提供できますか?

乾杯!

4

2 に答える 2

3

必要に応じて、DetachedCriteriaをさらに追加できます。

これが私のサンプルです:

DetachedCriteria sum = DetachedCriteria.For(typeof(MasterAsset), "asset2")
                    .SetProjection(Projections.Sum("PhysicCondition"));

DetachedCriteria count = DetachedCriteria.For(typeof(MasterAsset), "asset3")
                    .SetProjection(Projections.Count("PhysicCondition"));

Session.CreateCriteria(typeof(MasterAsset), "asset1")
                    .SetProjection(Projections.ProjectionList()
                    .Add(Projections.Property("IDMasterAsset"), "IDAsset"))
                    .Add(Subqueries.PropertyLt("PhysicCondition", sum))
                    .Add(Subqueries.PropertyLe("PhysicCondition", count))
                    .AddOrder(Order.Asc("IDAsset"))
                    .List();

この助けを願っています。

于 2011-01-07T06:58:09.700 に答える
1

ここに私の簡単なサンプルがあります:

DetachedCriteria sum = DetachedCriteria.For(typeof(MasterAsset), "asset2")
                  .SetProjection(Projections.Sum("PhysicCondition"));
Session.CreateCriteria(typeof(MasterAsset), "asset1")
          .SetProjection(Projections.ProjectionList().Add(Projections.Property("IDMasterAsset"), "IDAsset"))
          .Add(Subqueries.PropertyLt("PhysicCondition", sum))
          .AddOrder(Order.Asc("IDAsset"))
          .List();     
于 2011-01-07T05:07:46.170 に答える