Alias de la tabla combinada en SQLProjection
-
20-08-2019 - |
Pregunta
Tengo esta consulta:
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"))
Hay una manera que puedo conseguir el alias de SQL para "bienes" como escribir {raíces} en la cadena SQL?{raíces} no funciona.Ahora me terminó de escribir el alias en la cadena SQL, pero que no parece muy sólido.
Si entiendo la documentación correctamente este debería ser posible.Estoy usando NH2.0.1.
/Asger
Solución
No es una respuesta directa a su pregunta, pero:¿Por qué no se consulta a los tres por separado los valores de y hacer la concatenación en el código en lugar de utilizar la base de datos para que?
Para responder a su pregunta:En modo de Hibernación v3 (java, lo siento) no hay un getColumnAlias método de la Proyección de la interfaz.Yo no soy capaz de encontrar su contraparte en Fluent.
Saludos
Otros consejos
Puede usar {alias}: hará referencia al alias de la proyección actual.