事务性无法解决事务边界-Hibernate

时间:2019-05-17 10:07:37

标签: java hibernate jpa spring-transactions transactional

我正在尝试使用Hibernate中的事务管理器执行一个简单的saveOrUpdate操作,但是上下文没有刷新到DB表。我怀疑事务管理器无法解决事务的结束,因此无法刷新更改。

如果显式完成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;
}

具有如下所示的自动连线SessionFactory,

@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;
    }

0 个答案:

没有答案