【问题标题】:Spring 5 and Hibernate 5 upgradeSpring 5 和 Hibernate 5 升级
【发布时间】:2021-12-26 22:39:39
【问题描述】:

我正在将现有的 Spring + Hibernate 项目从以前的版本升级到最新版本。我使它一切正常,除了数据没有保存到数据库中。也没有错误。这是代码。感谢你的帮助。谢谢!

ApplicationConfiguration.xml

<bean id="providerDao" class="dao.hibernate.ProviderDAOImpl">
        <property name="sessionFactory" ref="AbcSessionFactory"/>
    </bean>
<bean id="ABCSessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
    <property name="dataSource" ref="AbcDataSource"/>
     <property name="mappingResources">
      <list>
<value>abc/bean/Provider.hbm.xml</value>
</list>
    </property>
<property name="hibernateProperties">
      <props>
        <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>
        <prop key="hibernate.show_sql">${abc.showSql}</prop>
        <prop key="hibernate.default_schema">${abc.dbSchema}</prop>
        <prop key="hibernate.use_outer_join">true</prop>
      </props>
    </property>
</bean>

//数据源

<!-- DataSource setup -->
  <bean id="AbcDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName"><value>${abc.jndiName}</value></property>
  </bean> 
<bean id="txManager" 
class="org.springframework.orm.hibernate5.HibernateTransactionManager">
    <property name="sessionFactory" ref="ABCSessionFactory"/>
</bean>

DAO 调用

public class ProviderDAOImpl extends HibernateDaoSupport 
                implements ProviderDAO 
{
    private static final Log log = LogFactory.getLog(ProviderDAOImpl.class);
    
    public void save(final Provider instance) 
    {
        log.debug("saving Provider instance");            
        getHibernateTemplate().saveOrUpdate(instance);
        log.debug("save successful");
    }
}

【问题讨论】:

  • 我已经尝试了许多其他帖子中建议的方法,但 SAVE 仍然无法正常工作。感谢你的帮助。谢谢!
  • 我可以读取数据,但只有 SAVE 不起作用,而且完全没有错误。仍在努力弄清楚。非常感谢!
  • 你在哪里调用 save 方法,在哪个上下文中?也许调用休眠 session.flush()
  • 您是否使用@Transactional 开启了交易或将您的DAO 声明为@Repository? XML 语法现在用的不多,注解更容易使用。
  • 是的,我一直在尝试所有这些注释。 @Transactional(传播=传播。需要,只读=假)。我没有使用存储库,但我会尝试一下。

标签: hibernate spring-mvc


【解决方案1】:

我已经使用最新的命名空间更新了配置 xml 文件并重做所有的 beans:bean 等。我不太确定问题是什么,但开始使用 Hibernate Session session.save();.@Transactions 等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-24
    • 1970-01-01
    • 1970-01-01
    • 2018-06-28
    • 2015-12-03
    • 1970-01-01
    • 2016-03-24
    • 2020-09-22
    相关资源
    最近更新 更多