У меня есть следующий метод в слое DAO моего Java-приложения:
public void save(Employee emp) {
System.out.println("emp type: " + emp.getClass().getName);
getHibernateTemplate().save(emp);
System.out.println("object saved!");
System.out.flush();
}
Класс сотрудника не распространяется на другие классы и имеет следующий файл hbm:
<hibernate-mapping>
<class name="org.myCompany.Employee" table="employee">
<!-- fields omitted to save space -->
</hibernate-mapping>
Тем не менее, вставка завершается с ошибкой java.lang.ClassCastException.Сначала я думал, что с моим отображением что-то не так (например, отображение целых чисел на логическое значение), но затем я включил отладку show_sql в hibernate и обнаружил следующее в моем файле журнала:
emp type: org.myCompany.EmployeeHibernate: вставьте в значения клиента (.......) (......)java.lang.ClassCastException
Почему он выбрал совершенно случайную таблицу для вставки?Я уверен, что у меня должен быть какой-то конфигурационный файл, неправильно настроенный, но я не знаю, какой именно.Я проверил следующее:
- applicationContext-hibernate.xml -> объекты Customer и Employee сопоставлены с их правильными файлами hbm
- ни Customer, ни Employee не имеют отношения наследования (тамэто даже не общий родительский класс, такой как Person или User)
Что еще я могу попробовать?