質問

私はこのクエリを持っています:

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の中にその対応を見つけることができませんよ。

乾杯

他のヒント

あなたが{別名}を使用することができる - それは現在の投影のエイリアスを参照する

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top