используя Hibernate с MySQL - PullRequest
       3

используя Hibernate с MySQL

0 голосов
/ 27 августа 2018

Я следовал этому уроку mykong , чтобы использовать hibernate с mysql.

Моя проблема в том, что при запуске программы я получаю это исключение org.hibernate.TransactionException: транзакция не была успешно запущена ".

Поэтому я попытался использовать session.persist(Object) и session.flush() вместо session.save(Object) и session.getTransaction().commit(). Теперь я не получаю никаких исключений, но объект не сохраняется в базе данных. логи показывают запрос

Hibernate: вставить в сток (STOCK_CODE, STOCK_NAME) значения (?,?)

Может ли кто-нибудь помочь мне с этим?

            session = HibernateUtil.getSessionFactory().openSession();

        Stock stock = new Stock();

        stock.setStockCode("4715");
        stock.setStockName("GENM");

        session.persist(stock);

        session.flush();

        session.getTransaction().commit();

        session.close();

1 Ответ

0 голосов
/ 27 августа 2018

Вы пытаетесь совершить транзакцию, которую вы даже не начали, так как вам не хватает

session.beginTransaction();

в вашем коде.

В соответствии с указанным выше веб-сайтом вы должны начать сеанс, затем запустить транзакцию в сеансе, внести изменения, сохранить отредактированный объект в сеанс и затем зафиксировать транзакцию. Ваш сброс также вызывает проблемы, так как вы сбрасываете сеанс, даже не сохраняя и не фиксируя его.

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

    session.beginTransaction();
    Stock stock = new Stock();

    stock.setStockCode("4715");
    stock.setStockName("GENM");

    session.save(stock);
    session.getTransaction().commit();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...