I'm having the same problem. This is the code and corresponding results I get:
Code:
// 2. CODE
// get the next id
SQLQuery nextQuery = session.createSQLQuery( "SELECT MAX(EventId) as maxPrimayKey FROM SP_Events" );
nextQuery.addEntity( "SpEvents", SpEvents.class );
List result = nextQuery.list();
System.out.println( "Next ID > " + result );
RESULTQuote:
compile-src:
[echo] COMPILING SRC...
[javac] Compiling 248 source files to C:\TIMS\build
[javac] 8 warnings
runClass:
[java] >>> USING Hibernate Default Configuration [hibernate.cfg.xml]
[java] >>> USING Hibernate Config [hibernate.cfg.xml]
[java] org.hibernate.exception.SQLGrammarException: could not execute query
[java] at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:59)
[java] at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
[java] at org.hibernate.loader.Loader.doList(Loader.java:1596)
[java] at org.hibernate.loader.Loader.list(Loader.java:1577)
[java] at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:112)
[java] at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1414)
[java] at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:153)
[java] at com.lehman.tims.event.CallEvent.main(CallEvent.java:251)
[java] Caused by: java.sql.SQLException: S0022: Invalid column name 'CloseDate0_'.
[java] at com.sybase.jdbc2.jdbc.ErrorMessage.raiseError(ErrorMessage.java:531)
[java] at com.sybase.jdbc2.tds.TdsResultSet.findColumnByLabel(TdsResultSet.java:535)
[java] at com.sybase.jdbc2.jdbc.SybResultSet.findColumn(SybResultSet.java:538)
[java] at com.sybase.jdbc2.jdbc.SybResultSet.getString(SybResultSet.java:329)
[java] at org.hibernate.type.StringType.get(StringType.java:16)
[java] at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:77)
[java] at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:68)
[java] at org.hibernate.type.AbstractType.hydrate(AbstractType.java:80)
[java] at org.hibernate.type.ComponentType.hydrate(ComponentType.java:423)
[java] at org.hibernate.type.ComponentType.nullSafeGet(ComponentType.java:182)
[java] at org.hibernate.loader.Loader.getKeyFromResultSet(Loader.java:759)
[java] at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:292)
[java] at org.hibernate.loader.Loader.doQuery(Loader.java:412)
[java] at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:21
8)
[java] at org.hibernate.loader.Loader.doList(Loader.java:1593)
[java] ... 5 more
[java] Exception in thread "main"
[java] Java Result: 1
Code:
// 2.
// get the next id
SQLQuery nextQuery = session.createSQLQuery( "SELECT MAX(EventId) as maxPrimayKey FROM SP_Events" );
nextQuery.addScalar( "maxPrimaryKey", Hibernate.INTEGER );
Object result = nextQuery.uniqueResult();
System.out.println( "Next ID > " + result );
RESULTQuote:
runClass:
[java] >>> USING Hibernate Default Configuration [hibernate.cfg.xml]
[java] >>> USING Hibernate Config [hibernate.cfg.xml]
[java] org.hibernate.exception.SQLGrammarException: could not execute query
[java] at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:59)
[java] at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
[java] at org.hibernate.loader.Loader.doList(Loader.java:1596)
[java] at org.hibernate.loader.Loader.list(Loader.java:1577)
[java] at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:112)
[java] at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1414)
[java] at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:153)
[java] at org.hibernate.impl.AbstractQueryImpl.uniqueResult(AbstractQueryImpl.java:603)
[java] at com.lehman.tims.event.CallEvent.main(CallEvent.java:257)
[java] Caused by: java.sql.SQLException: S0022: Invalid column name 'maxPrimaryKey'.
[java] at com.sybase.jdbc2.jdbc.ErrorMessage.raiseError(ErrorMessage.java:531)
[java] at com.sybase.jdbc2.tds.TdsResultSet.findColumnByLabel(TdsResultSet.java:535)
[java] at com.sybase.jdbc2.jdbc.SybResultSet.findColumn(SybResultSet.java:538)
[java] at com.sybase.jdbc2.jdbc.SybResultSet.getInt(SybResultSet.java:349)
[java] at org.hibernate.type.IntegerType.get(IntegerType.java:26)
[java] at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:77)
[java] at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:94)
[java] at org.hibernate.loader.custom.CustomLoader.getResultColumnOrRow(CustomLoader.java:1
33)
[java] at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:329)
[java] at org.hibernate.loader.Loader.doQuery(Loader.java:412)
[java] at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:21
8)
[java] at org.hibernate.loader.Loader.doList(Loader.java:1593)
[java] ... 6 more
[java] Exception in thread "main"
[java] Java Result: 1