一个对象中的属性有布尔类型时,命名的时候尽量不要把前缀定为is,因为在使用HQL查询的时候,属性必须去掉is前缀,然后小写首字母才能查询出结果,否则查询不到任何数据;
例如,有一个User对象,里面有一个标识这个用户是否激活的属性,然后将其命名为isActivated,在查询的时候,根据HQL的规则,使用 user.isActivated = true去查询,将得到错误的提示:isActivated属性不存在;查看数据库,发现这个属性映射为了activated,然后修改语句测试,user.activated = true, 此时才能得到正确的数据,这么改了,感觉特别别扭;于是猜测,难道让hibernate强制映射为is_activated可以么?
映射好之后,还是采用 user.isActivated = true 查询,还是报那个错误,于是能得出结论,跟hibernate映射成什么字段无关,跟这个对象Bean有关 ,此时只能将属性名字改成activated ,然后即可符合所有规范。 此处应该注意!