Alias verknüpfte Tabelle in SQLProjection
-
20-08-2019 - |
Frage
Ich habe diese Abfrage:
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"))
Gibt es eine Möglichkeit, ich kann den SQL alias für "estate", wie schreiben {estate} in die SQL-Zeichenfolge?{estate} funktioniert nicht.Nun landete ich hardcoding der alias in der SQL-Zeichenfolge, aber das scheint nicht sehr solide.
Wenn ich sehe, dass die Dokumente korrekt sollte dies möglich sein.Ich bin mit NH2.0.1.
/Asger
Lösung
Nicht eine direkte Antwort auf deine Frage, aber:Warum nicht, Fragen Sie die drei Werte separat, und tun die Verkettung in Ihrem code anstelle der Verwendung der Datenbank?
Um deine Frage zu beantworten:In Hibernate v3 (java, tut mir Leid) es ist ein getColumnAlias Methode der Projektion interface.Ich bin nicht in der Lage zu finden Ihr Gegenstück in NHibernate.
Cheers
Andere Tipps
Sie können die Verwendung von {alias} - es verweist der alias der aktuellen Projektion.