]
Reha K. Gerçeker commented on HHH-5273:
---------------------------------------
I agree that casting all row counts to Number is a solution to work with both 3.3.x and
3.5.x but that is considered as a major rework in our situation.
RowCountProjection long to int cast exception
---------------------------------------------
Key: HHH-5273
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-5273
Project: Hibernate Core
Issue Type: Bug
Affects Versions: 3.5.2
Environment: hibernate-core 3.5.2
Reporter: Pamir Erdem
After we upgraded our hibernate.jar from 3.3.2 to 3.5.2 the methods which executes
rowcount functions have started to throw long to cast exception.
From the source code of hibernate, it is clear that for the features which will be
implemented in 3.6
some implementations are changed.
#http://opensource.atlassian.com/projects/hibernate/browse/HHH-5138
In 3.3.2
{code:title=RowCountProjection.java|borderStyle=solid}
public Type[] getTypes(Criteria criteria, CriteriaQuery criteriaQuery)
throws HibernateException {
return new Type[] { Hibernate.INTEGER };
}
{code}
In 3.5.2
{code:title=RowCountProjection.java|borderStyle=solid}
return new Type[] {
getFunction( criteriaQuery ).getReturnType( null, criteriaQuery.getFactory() )
};
{code}
But the definitions of the rowcount functions in both versions in same in Dialect.java
{code}
static {
STANDARD_AGGREGATE_FUNCTIONS.put(
"count",
new StandardSQLFunction("count") {
public Type getReturnType(Type columnType, Mapping mapping) {
return Hibernate.LONG;
}
public String render(List args, SessionFactoryImplementor factory) {
if ( args.size() > 1 ) {
if ( "distinct".equalsIgnoreCase( args.get( 0 ).toString() ) ) {
return renderCountDistinct( args );
}
}
return super.render( args, factory );
}
{code}
By this minor change in 3.5.2 all the project tests which executes count sql function are
failing by throwing class cast exception
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: