Hi,
first of all please excuse me for my poor english.
i am a java developer, and i'm using hibernate to implement persistence.
Using Expression.ilike method i had some compatibility problem becouse of the fixed behaviour of converting fields to lowercase.
So i modified org.hibernate.Criteria.LikeExpression and also org.hibernate.Criteria.LikeExpressionIlikeExpression classes, to implement the possibility of choosing the preferred converting mode:
either uppercase or lowercase.
So what i obtained is something like this:
CLASS: org.hibernate.Criteria.IlikeExpression
....
@Deprecated
protected IlikeExpression(String propertyName, String value, MatchMode matchMode) {
this( propertyName, matchMode.toMatchString(value), CONVERT_MODE_LOWER_CASE);
}
protected IlikeExpression(String propertyName, String value, MatchMode matchMode, int CONVERT_MODE) {
this( propertyName, matchMode.toMatchString(value), CONVERT_MODE);
}
....
CLASS: org.hibernate.Criteria.LikeExpression
protected LikeExpression(String propertyName, String value,
MatchMode matchMode, Character escapeChar, boolean ignoreCase,
int CONVERT_MODE) {
this(propertyName, matchMode.toMatchString(value), escapeChar,
ignoreCase, CONVERT_MODE);
}
@Deprecated
protected LikeExpression(String propertyName, String value,
MatchMode matchMode, Character escapeChar, boolean ignoreCase) {
this(propertyName, matchMode.toMatchString(value), escapeChar,
ignoreCase, LikeExpression.CONVERT_MODE_LOWER_CASE);
}
both solutions are compatible with the old behaviour, but now i can choose between uppercase or lowercse convertion.
If you think this could be a correct approach to this problem, please answer me and i will give you the whole source code reguarding the modify.
Thanks for your attention.
Best Regards
--
Andrea Tomassi