Привет, я использую Hibernate и Spring для моего проекта WebService. Когда я отправляю запрос SOAP через SOAPUI, я не мог обновить объект в базе данных, потому что hibernate выдает такой тип ошибки:
JDBC exception on Hibernate data access; nested exception is org.hibernate.exception.DataException: could not update: [org.game.model.HeroChampion#123456]
, этот HeroChampion является частью many-to-one
отношения внутри другого объекта, скажем, SkillObject.
Любой, кто раньше использовал Hibernate, наверняка может иметь отношение к этой проблеме.
Какую часть я должен начать проверять? дао.саваметод? или связь между двумя таблицами?
Если вам нужна дополнительная информация, спросите об этом. Спасибо. Кстати, это веб-сервис, состоящий из двух частей. Основной веб-сервис, интерпретирующий soap запросов и клиентский проект, выполняющий soap запросов. Сейчас я работаю над проектом клиента.
Дополнительная ошибка, которая может помочь:
SEVERE: Could not synchronize database state with session
Один из методов сохранения:
public void saveHeroChampion(final HeroCHampion heroObj) {
getHibernateTemplate().saveOrUpdate(heroObj);
getHibernateTemplate().flush();
}
Как вы думаете, я следует добавить (или это тривиально?)
getHibernateTemplate().refresh(heroObj);
В настоящее время тип родительского элемента Cascade установлен на NONE, изменить его на Cascade = MERGE?
/**
*
* @hibernate.set inverse="true" cascade="merge" order-by="SST_TEST_SERIES ASC"
* @hibernate.collection-key column="SST_HERO_ID_FK"
* @hibernate.collection-one-to-many class="org.game.model.HeroSkills" lazy="false"
* @struts.form-field
*/