I have a project where I’m using NHibernate to handle bindings to the database. So far I have mostly been using the basics when it comes to queries. Now I’m struggling with a more difficult query, and I notice new parts of NHibernate. In particular I’m curious about SetProjection, which seems to be important when doing queries.
What is a Projection, and how will I typically use it? I am assuming that a projection is a general term when it comes to databases, so you are welcome to give more general answers too..
Projection as Antoine said is transformation. In terms of query it is:
*PROJECTION*is expression for data transformation.Example:
The Criteria equivalent would be:
No projection here, we take data without transformation. If we want one:
Here, the Projection class comes into play. The above query can be rewritten into a Criteria query as:
So we project all rows to single item:
namefield.There are other projections:
Projection.rowCount()for example (forCOUNT(*))