powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate - save?
10 сообщений из 10, страница 1 из 1
Hibernate - save?
    #33522562
Andy77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема со сохранением в БД.
начал разбираться с Hibernate. пишу пробную прогу.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
            Domain domain = new Domain();
            
            session.save(domain);

            domain.setCode("111");
            domain.setName("TEST");
            domain.setShortName("TST");
            domain.setSymbol("T");
            
            session.save(domain);
            
            session.getTransaction().commit();

база ругается что в поле CODE идет пустое значение.
так и должно быть? как заставить Hibernate постить в БД актуальные данные?
...
Рейтинг: 0 / 0
Hibernate - save?
    #33522588
dober
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зачем в начале
session.save(domain);
...
Рейтинг: 0 / 0
Hibernate - save?
    #33522660
Andy77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пробую вариант поведения формы когда пользователь создал объект, потом захотелось поменять иформацию и снова сохранить.
...
Рейтинг: 0 / 0
Hibernate - save?
    #33522870
Andrew Bykov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, так и должно быть, посуди сам - ты пытаешься записать NULL в NOT NULL column CODE в базе.

Не вполен понял что тебе надо сделать, и все таки...

Можно:
1) задать id-шник руками
2) если ты хочешь чтобы хибернейт сгенерил id - проверь говоришь ли ты об этом в маппинге. Что то типа:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
 <id
            name="code"
            column="code"
            type="java.lang.Long"
        >
            <generator  class ="native">
                <param name="sequence">id_s</param>
            </generator>
        </id>
Генератор выбери какой надо - в примере через sequence.
...
Рейтинг: 0 / 0
Hibernate - save?
    #33522898
Andy77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
задам вопрос по другому

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
            Domain domain =  new  Domain();

            domain.setCode("222");
            domain.setName("TEST2");
            domain.setShortName("TST2");
            domain.setSymbol("TT");
            
            session.save(domain);

            
            domain.setCode("111");
            domain.setName("TEST");
            domain.setShortName("TST");
            domain.setSymbol("T");
            
            session.save(domain);

            session.getTransaction().commit();

при commit идет сначала идет INSERT потом UPDATE
почему не идет сразу INSERT с новыми данными? так и задуман Гибернейт?
...
Рейтинг: 0 / 0
Hibernate - save?
    #33523540
dober
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Второрой ISERT и недолжен, ты рабоатеш с одной и тойже записью

Второй инсерт:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Domain domain =  new  Domain();

domain.setCode("222");
domain.setName("TEST2");
domain.setShortName("TST2");
domain.setSymbol("TT");
session.save(domain);

Domain d =  new  Domain();
d.setCode("111");
d.setName("TEST");
d.setShortName("TST");
d.setSymbol("T");
session.save(d);

session.getTransaction().commit();
...
Рейтинг: 0 / 0
Hibernate - save?
    #33523649
Andy77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
            Domain domain =  new  Domain();

            domain.setCode("222");
            domain.setName("TEST2");
            domain.setShortName("TST2");
            domain.setSymbol("TT");
            
            session.save(domain);
            
            domain.setCode("111");
            domain.setName("TEST");
            domain.setShortName("TST");
            domain.setSymbol("T");
            
            session.save(domain);

            session.getTransaction().commit();

мне надо чтоб при коммите
вместо
Код: plaintext
1.
2.
INSERT INTO ... (CODE, NAME, ...) VALUES ('222', 'TEST2', ....)
UPDATE ... SET CODE = '111', NAME = 'TEST', ... WHERE ID = <такой то>
шло сразу
Код: plaintext
1.
INSERT INTO ... (CODE, NAME, ...) VALUES ('111', 'TEST', ....)

реально заставить хибернейт так делать?
...
Рейтинг: 0 / 0
Hibernate - save?
    #33523784
Andrew Bykov_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А ЗАЧЕМ же тебе тогда первый сэйв, а? )
...
Рейтинг: 0 / 0
Hibernate - save?
    #33524388
Andy77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
см. выше - пробую вариант поведения формы когда пользователь создал объект, потом захотелось поменять иформацию и снова сохранить.
...
Рейтинг: 0 / 0
Hibernate - save?
    #33525716
Andrew Bykov_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Andy77
см. выше - пробую вариант поведения формы когда пользователь создал объект, потом захотелось поменять иформацию и снова сохранить.

Хм... в одной транзакции?
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate - save?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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