SQLProjectionに結合テーブルの別名
-
20-08-2019 - |
質問
私はこのクエリを持っています:
criteria = session.CreateCriteria(typeof (Building))
.CreateAlias("Estate", "estate")
.SetProjection(Projections.ProjectionList()
.Add(Property.ForName("Name"), "BuildingName")
.Add(Property.ForName("estate.Name"), "EstateName")
.Add(Projections.SqlProjection(
"(estate1_.BBRMunicipalityNumber + '-' + estate1_.BBREstateNumber + '-' + {alias}.BBRBuildingNumber)" + " as BBRNumber",
new[] { "BBRNumber" },
new[] { NHibernateUtil.String }),
"BBRNumber"))
私はSQL文字列に{不動産}を書くように「不動産」のためのSQLの別名を得ることができる方法はありますか? {不動産}は動作しません。今、私は、SQL文字列に別名をハードコーディングすることになったが、それは非常に強固ないないようです。
私が正しくドキュメントを理解していれば、これは可能なはずです。私はNH2.0.1を使用しています。
/ Asger
解決
未直接あなたの質問への答えが、: なぜあなたは別に三つの値を照会し、代わりにそのためのデータベースを使用するコード内で連結をしない?
あなたの質問に答えるために:HibernateのV3(ジャワ、申し訳ありません)では<のhref = "https://www.hibernate.org/hib_docs/v3/api/org/hibernate/criterion/Projection.html#getColumnAliasesがあります(java.lang.Stringで、%の20int)」REL = "nofollowをnoreferrer">投影インタフェース上getColumnAlias の方法。私はNHibernateの中にその対応を見つけることができませんよ。
乾杯
他のヒント
あなたが{別名}を使用することができる - それは現在の投影のエイリアスを参照する
。所属していません StackOverflow