powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / "незапланированые" update после select в hibernate
6 сообщений из 6, страница 1 из 1
"незапланированые" update после select в hibernate
    #34936037
krot-s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
C hibernate работаю только разбираюсь, вернее даже с nhibernate, но суть там одна и та же. Вот что не могу понять - почему после select'a данных сразу идет их update? да еще и такой, что foreign keys срабатывают. подскажите, кто знает.
вот файл маппинга:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<?xml version="1.0"?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="Accounting" assembly="Accounting">
  < class  name="goodsL" table="goods@orcl.testdb">
    <id name="id" column="id" type="int">
      <generator  class ="sequence">
        <param name="sequence">goods_seq</param>
      </generator>
    </id>
    <property name="name"/>
    <property name="articul"/>
    <property name="vendor_articul"/>
    <property name="location" type="integer"/>
    <property name="is_sold"/>
    <property name="was_excluded"/>
    <property name="labeled_cost"/>
    <property name="goods_type"/>
    <property name="countOverType" 
              formula="(select count(*) from goods s where s.goods_type = goods_type 
                    and s.location = location and s.is_sold = 0 and s.was_excluded = 0 and s.labeled_cost = labeled_cost)"/>
  </ class >
</hibernate-mapping>

получение данных на клиенте:
Код: plaintext
1.
goodsL goods = (goodsL)session.CreateQuery("select m from goodsL as m where m.articul = '"+art+"'").List()[ 0 ];

так я получаю пару тысяч строк. после получения всех данных снифером наблюдаю команды update goods set ... Время от времени вылетают exception's из-за срабатываний foreign keys.
В чем дело? как изменить подобное поведение?
...
Рейтинг: 0 / 0
"незапланированые" update после select в hibernate
    #34936083
zalexaka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ставьте
Код: plaintext
hibernate.use_sql_comments=true
и смотрите зачем и что он апдейтит
...
Рейтинг: 0 / 0
"незапланированые" update после select в hibernate
    #34936107
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
похоже на flush сессии перед запросами "countOverType"

1. отключите auto flush
2. выкинте формулу

ну и на запросики надо взглянуть

(show_sql круче сниффера)
...
Рейтинг: 0 / 0
"незапланированые" update после select в hibernate
    #34936141
Фотография Java Programmer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Формулу выбрасывать не надо - show_sql - действительно надо включить - как мне кажется
из того что ыв тут написали - апдэйта последовать не должно - посмотрите не изменяете ли вы после этого объект который достали
...
Рейтинг: 0 / 0
"незапланированые" update после select в hibernate
    #34936166
Фотография Java Programmer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное у вас стоит автофлаш и когда вы изменяли прежде это объект - вы не закоммитили изменения
собственно перед селектом хибернейт заливает их в базу для того чтобы вытащить актуальные значения
...
Рейтинг: 0 / 0
"незапланированые" update после select в hibernate
    #34937982
krot-s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо всем. надо было действительно отключить auto-flush.
Код: plaintext
session.FlushMode = FlushMode.Commit;
и все проблемы пропали
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / "незапланированые" update после select в hibernate
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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