-
23-09-2019 - |
質問
ことはでき戻企業とプロジェクショク?
私はこれまでのSQLクエリー(下記参照)ができるなどのような予測を返します。
Dim sql As String = "SELECT {a.*}, {b.*} FROM a LEFT OUTER JOIN b ON a.pk = b.fk")
' Convert SQL results into entities {a} and {b}
Dim query As IQuery = session.CreateSQLQuery(sql) _
.AddEntity("a", GetType(a)) _
.AddEntity("b", GetType(b))
Return query.List()
解決
あり戻すことができ主体から見ます。
をご利用の場合はHQLクエリを指定できるためのコンストラクタに指定されたクラスのHQL選択項:
IList<Foo> foos = session.CreateQuery(
"select new Foo(f.Name, f.Value) from Foo f")
.List<Foo>();
この例では、Fooクラスのコンストラクタを利用する署名はHQLクエリ。I.e:
きものAliasToBean ResultTransformer、自動的にマップを返された値からのクエリの特性指定のタイプです。このアプローチ、エイリアスのクエリに直接マッピング特性、指定されたタイプです。例えば:
IList<Foo> foos = session.CreateQuery(
"select f.Name as Name, f.Value as Value from Foo f")
.SetResultTransformer(Transformers.AliasToBean<Foo>())
.List<Foo>();
これらの例は、クラスFooっていれば次のようになるはずです:
public class Foo
{
public Foo() { }
public Foo(string name, double value)
{
Name = name;
Value = value;
}
public virtual string Name { get; set; }
public virtual double Value { get; set; }
}
のクラス上を含む有効なコンストラクタはHQL例です。でいても明らかにしています。公共性に揃うにエイリアス用のHQLクエリを使用することをお勧めAliasToBeanトランス入主体のタイプFooの結果を返します。
しかしながら、ばいいので、しばいの両者に同投影を返します。ることが難しれます。かったのでカップルの迅速試験になります。
更新:
で利用できますAliasToBean結果、トランスの基準APIとHQL.トランスは同じように、予測のクエリパッケージをダウンロードする異なる利用の基準とします。ここでは一例を用い基準をクエリ:
IList<Foo> foos = session.CreateCriteria<Foo>()
.SetProjection(Projections.ProjectionList()
.Add(Projections.Property("Name"), "Name")
.Add(Projections.Property("Value"), "Value"))
.SetResultTransformer(Transformers.AliasToBean<Foo>())
.List<Foo>();
所属していません StackOverflow