實體類 HibernateBooleanDemo 有屬性 enabled(boolean),對應資料表欄位 isEnabled。HQL 寫 where isEnabled=false 正常,改成 where enabled=false 拋出 could not resolve property: enabled。
org.hibernate.QueryException: could not resolve property: enabled of: org.acman.demo.HibernateBooleanDemo
使用 HibernateSynchronizer 自動生成映射檔(.hbm.xml)時,<property name="Enabled" ...> 的 name 屬性**首字母大寫**,導致 Hibernate 無法識別屬性 enabled。其他型別(String、Long 等)似乎對大小寫不敏感,唯獨 boolean/Boolean 類型嚴格要求屬性名**小寫開頭**。
.hbm.xml:<property name="enabled" column="isEnabled" type="boolean"/>@Column(name="isEnabled") private boolean enabled; 避免 XML 映射檔維護。@Entity、@Column),減少 XML 映射檔出錯機率。isXxx(資料庫)對應 xxx(實體屬性),並在映射中顯式指定 column。