powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / mssql + hibernate: не вставляются записи в "чужую" базу
3 сообщений из 3, страница 1 из 1
mssql + hibernate: не вставляются записи в "чужую" базу
    #39081073
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При вставке записи выдается такая ошибка:
Код: java
1.
org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: -1; expected: 1


обратите внимание: actual row count: -1; . Гугль на ошибку выдает 0 результатов, про яндекс лучше промолчим.

SQL лог
Код: plsql
1.
2.
3.
4.
5.
6.
    insert 
    into
        Somedb.dbo.StateTaxMark
        (credit_id, cause_no, relation, App_id) 
    values
        (?, ?, ?, ?)


Таблица с varchar ключом App_id, задается вручную.
Тот же код в оракле идет на ура.
Возможно, как-то связано с тем, что база данных не совпадает с той, что задана в строке подключения, поэтому в аннотациях указано
Код: java
1.
2.
3.
@Entity
@Table(catalog="Somedb",schema="dbo")
public class StateTaxMark {...
...
Рейтинг: 0 / 0
mssql + hibernate: не вставляются записи в "чужую" базу
    #39081083
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ivanraобратите внимание: actual row count: -1; . Гугль на ошибку выдает 0 результатов, про яндекс лучше промолчим.

У нас какой-то разный гугл?
https://www.google.com/search?q="actual row count: -1;"

ivanraТаблица с varchar ключом App_id, задается вручную.

С этого места поподробнее. Что за ключ? Как замаплен?
...
Рейтинг: 0 / 0
mssql + hibernate: не вставляются записи в "чужую" базу
    #39081147
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,
0 результатов при поиске по полной строке ошибки
Код: java
1.
org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: -1; expected: 1


Но действительно, более широкий поиск позволяет найти решение. Вот что нашел:
Ошибка связана с MSSQL-оптимизатором соединения SET NOCOUNT ON; . Насколько я понял, если он включен, то на все CRUD-запросы возвращается -1. Можно:
- перед выполнение запроса отключить оптимизацию SET NOCOUNT OFF;
- или в хибернейтовском конфиге включить принудительный подсчет строк, задав ненулевое значение hibernate.jdbc.batch_size , что я и сделал
Код: xml
1.
<property name="hibernate.jdbc.batch_size">30</property>


Этого оказалось достаточно
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / mssql + hibernate: не вставляются записи в "чужую" базу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]