I'm pretty sure you should look at your db configuration, and in the sqlserver doc about fields that're typed varchar(). Maybe it's fixed-width, so It's padded by the dbms when receiving the query and before executing it...
In fact, Hibernate does not apply anything special to strings, as reminded here by a member of the Hibernate Team :
http://forum.hibernate.org/viewtopic.ph ... 51#2192051
This automatic padding is also done by Oracle. I seem to remember a thread talking about that, but I can't find it again. I's say it was with Oracle 8 maybe.