org.hibernate.TypeMismatchException: Provided id of the wrong type for class Car
Expected: class java.lang.String , got class java.lang.Long
<one-to-one name="brand" class="CarBrand"/> 默認為**主鍵關聯**,要求 Car 和 CarBrand 共享相同主鍵值 (Long vs String 類型不匹配)。實際業務中 Car.brandId 是外鍵關聯 CarBrand.brandId。
<!-- Car.hbm.xml -->
<many-to-one name="brand" class="CarBrand"
column="brandId" unique="true" />
many-to-one 表示多方 (Car) 關聯一方 (CarBrand)。unique="true" 加唯一約束,語義上等價於一對一。column="brandId" 指定外鍵列。WHERE c.carId = cb.brandId (錯誤)。WHERE c.brandId = cb.brandId (正確)。