Транзакционный не может разрешить границы транзакций - Hibernate - PullRequest
0 голосов
/ 17 мая 2019

Я пытаюсь выполнить простую операцию saveOrUpdate с помощью диспетчера транзакций в Hibernate, но контекст не сбрасывается в таблицы БД. Я подозреваю, что Менеджер транзакций не может разрешить конец транзакции и, следовательно, не сбрасывает изменения.

Изменения отражаются в Таблице БД, если session.flush () выполняется явно. Я использую режим сброса по умолчанию, который является AUTO.

Есть несколько других вопросов по SO, в которых говорится об этом, но ни один из них не помог в моем случае.

@Transactional(transactionManager="txManager", readOnly=false)
    public Integer setNamesTable(Names names) {
    session = getSession();
    Integer id = null;
    if (session != null) {
        try {
            id = (Integer) session.save(names);
        } catch (Exception ex) {
            System.out.println(ex);
        } 
        LOGGER.info("Exiting setNmlAggrTcaPhn");
        }
    return id;
}

Имейте SiredFactory, как показано ниже,

@Autowired
@Qualifier("hibernateTestAnnotatedSessionFactory")
SessionFactory sfc;

private synchronized Session getSession() {
    try {
            session = sf.getCurrentSession();
            if (session != null) {
            return session;
            } else {
            session = sf.openSession();
            }
        } catch (HibernateException ex) {
            session = sf.openSession();
        }
    return session;
    }
...