Could not get constructor for SingleTableEntityPersister現象:啟動報 org.hibernate.MappingException,堆棧指向實體持久化器構造失敗。
排查清單:
<property name="xxx" column="xxx"/> 名稱、類型、長度完全一致。public/protected 無參構造器。Boolean 類型用 isXxx() 而非 getXxx()。Alt+Insert),消除隱形字符/緩存不一致。Unsupported cascade style: true現象:映射文件中 <set cascade="true"/> 或 <many-to-one cascade="true"/> 拋異常。
根因:cascade 屬性值必須是枚舉常量,不能寫 true/false。
合法值:
none(默認,無級聯)save-update:持久化/更新時級聯delete:刪除時級聯all:包含以上所有 + lock/merge/refreshall-delete-orphan:刪除孤兒對象(一對多常用)修正示例:
<!-- 錯誤 -->
<set name="children" cascade="true">...</set>
<!-- 正確 -->
<set name="children" cascade="all-delete-orphan">...</set>
hbm2ddl.auto=validate 啟動時校驗映射一致性。@OneToMany(cascade=CascadeType.ALL))類型安全,優先考慮。這兩個錯誤覆蓋了 80% 新手映射問題,收藏備查,事半功倍。