У меня есть таблица в базе данных, созданная с помощью SQL:
CREATE TABLE `s_supplier` ( <br/>
`id` int(11) NOT NULL auto_increment,<br/>
`code` varchar(32) collate utf8_bin NOT NULL,<br/>
`name` varchar(128) collate utf8_bin NOT NULL,<br/>
`version` int(11) NOT NULL default '0'<br/>
PRIMARY KEY (`id`),<br/>
UNIQUE KEY `ui_uom_category_code` (`code`)<br/>
)
В базе данных существует 2 строки:(1, код1, имя1, 1)(2, код2, имя2, 1)Использование spring-hibernate:шаг 1:Я загружаю строку 1 в сущность, а затем меняю код на code2 (так же, как строка 2).а затем позвоните org.springframework.orm.hibernate3.support.HibernateDaoSupport.getHibernateTemplate () saveOrUpdate (юридическое лицо);. -> Возникает исключение «дублирующий код» -> ОК
шаг 2: я изменяю код на code3, а затем снова сохраняю описанным выше способом -> Возникает исключение «оптимистическое исключение, когда строка была обновлена или удалена другим пользователем» (я просто тестирую на одном пользователе)-> нокаутПосле отслеживания я обнаружил, что после шага 1 версия автоматически увеличивается на 1 для сущности.Я думаю, что не должно, потому что произошло исключение.Мой вопрос:
Это ошибка Spring Framework или Hibernate?