What does addScalar do?

superM picture superM · Mar 13, 2013 · Viewed 69.8k times · Source

The JavaDoc says:

SQLQuery org.hibernate.SQLQuery.addScalar(String columnAlias, Type type)

Declare a scalar query result

I know what executeScalar is in C#, but this scalar and C# scalar seem to be absolutely different.

Answer

Zutty picture Zutty · Mar 13, 2013

This is declaring that you want the result of the query to return objects for individual named columns, rather than entities. For instance

createSQLQuery("SELECT COUNT(*) AS c FROM Users").addScalar("c").uniqueResult()

Will return a single Long. If you specify multiple scalars, the result will come back as an array of Object. Its similar to executeScalar except that it works on named columns, and can return a composite result.