不知道你用的是哪个数据库?有些数据库里面本来就没有boolean型的字段,在这样的数据库里面往往就是用整数类型的0表示false,1表示true,比如Oracle数据库里面,如果在某数值字段里面填0,然后PreparedStatement取出来 getBoolean(1,fieldName),就是当做boolean取的,取出来就是false。
这种转换应该是由JDBC来完成的,和Hibernate无关。不过Hibernate也可以做,请看hibernate.properties里面有一行:
hibernate.query.substitutions true 1, false 0, yes 'Y', no 'N'
你自己写程序应该不用去管它了。