Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Hibernate и добавление записей в MS SQL таблицу 
:(
    Опции темы
SID_M
Дата 23.12.2008, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 195
Регистрация: 11.2.2005
Где: Россия, г. Москва

Репутация: нет
Всего: нет



Доброго времени суток. Вопрос заключается в следующем.
У меня есть табличка в базе MS SQL Server, которая хранит запланированные платежи. В таблице объявлен суррогатный автоинкрементный ключ. Файл маппинга для этой таблички выглядит следующим образом:
Код

<hibernate-mapping>
    <class name="mymoney.persistence.Plannedpayment" table="PLANNEDPAYMENT" schema="dbo" catalog="my_money">
        <id name="id" type="int">
            <column name="ID" />
            <generator class="identity" />
        </id>
        <many-to-one name="paymenttype" class="mymoney.persistence.Paymenttype" fetch="join">
            <column name="PAYMENTTYPE" not-null="true" />
        </many-to-one>
        <many-to-one name="appuser" class="mymoney.persistence.Appuser" fetch="select">
            <column name="USERID" not-null="true" />
        </many-to-one>
        <property name="paymentdate" type="timestamp">
            <column name="PAYMENTDATE" length="23" />
        </property>
        <property name="debitamount" type="big_decimal">
            <column name="DEBITAMOUNT" precision="15" not-null="true" />
        </property>
        <property name="creditamount" type="big_decimal">
            <column name="CREDITAMOUNT" precision="15" not-null="true" />
        </property>
        <property name="ground" type="string">
            <column name="GROUND" length="500" />
        </property>
    </class>
</hibernate-mapping>


Далее в процедуре обработки сообщения от кнопки на странице Visual JSF (написано с использованием IDE NetBeans 6.5) я добавляю новую запись. Выглядит это так:
Код

    public String addBtn_action() {

        // тут идёт инициализация параметров...

        Session session = HibernateUtil.getSessionFactory().getCurrentSession();

        session.beginTransaction();
        Query paymentTypeQuery = session.createQuery("from Paymenttype p where p.id = :id").
                setInteger("id", Integer.valueOf(newPaymentTypeDropDown.getValue().toString()));
        Paymenttype newPaymentType = (Paymenttype) paymentTypeQuery.uniqueResult();

        Plannedpayment newPlannedPayment =
                new Plannedpayment(0,
                newPaymentType,
                getSessionBean1().getCurrentUser(),
                newPaymentPlannedDate.getSelectedDate(),
                debitAmount,
                creditAmount,
                groundValue);

        session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.persist(newPlannedPayment);
        session.getTransaction().commit();

        // тут вызывается процедура обновления набора данных для таблички (чтобы отобразить добавленные и измененные элементы)

        return null;
    }


Один раз этот код отрабатывает нормально. Однако больше одной записи добавить не могу.  smile  Очень похоже, что с генератором это никак не связано. Удалял добавленные записи из базы, добавлял снова счетчик генерировался нормально, но больше одной записи добавить не могу. Debuger не заходит в обработчик!!!  smile  Это никак объяснить не получается.
Помогите, что не так? Как нормально добавлять записи?
--------------------
Если тебе не дано летать, то хотя бы ползай с гордо поднятой головой.
PM MAIL ICQ Skype GTalk   Вверх
barracuda477
Дата 23.12.2008, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 14.12.2008

Репутация: нет
Всего: нет



сможешь вытащить SQL, которую пихает хибернейт в MSSQL (либо логгированием запросов от хибера, либо на входе в MSSQL) ?
PM MAIL   Вверх
ivg
Дата 23.12.2008, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Autonomous R&D
**


Профиль
Группа: Участник
Сообщений: 686
Регистрация: 8.2.2006
Где: Екатеринбург

Репутация: 32
Всего: 81



Цитата(SID_M @  23.12.2008,  13:27 Найти цитируемый пост)
Debuger не заходит в обработчик!!!

Такое бывает когда в JSF на странице валидация чего либо не проходит, тогда Экшены в обычном случае не вызываются. Добавьте <h:messages ...  /> на страницу. Ну и на всякий случай проверьте несколькими вызовами addBtn_action() возможность добавлять несколько записей из кода как обычное приложение, а не со страницы.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0415 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.