gethibernatetemplate.update()执行了但是数据库未更新
分析可能是事务相关的配置问题。
解决方案之一:
为userDao设置userDaoProxy代理。
<bean id="userService" class="org.dci.service.impl.UserServiceImpl">
<property name="userDao" ref="userDaoProxy" />
</bean>
<bean id="userDaoProxy"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref local="transactionManager"/>
</property>
<property name="target">
<ref local="userDao"/>
</property>
<property name="transactionAttributes">
<props>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
分享到:
相关推荐
在实际开发中,我们可能需要执行一些复杂的 SQL 查询,或者使用数据库特有的函数和语句,而这些操作在 HQL 中不支持。此时,我们需要使用原生 SQL 语句来实现这些操作。 使用 Hibernate 执行原生 SQL 语句 ...
这里没有给出完整的执行更新的代码,但在实际应用中,你需要使用`Session`的`createQuery`或`createSQLQuery`方法,结合参数`params`来完成这个操作。 总的来说,Hibernate API提供了丰富的功能来处理数据库操作,`...
CRUD,即Create(创建)、Read(读取)、Update(更新)和Delete(删除),是数据库操作中最基本也是最频繁使用的四个操作。本文将深入解析在JSP Web开发中如何实现CRUD操作,主要通过示例代码片段来阐述具体实现...
例如,使用`createQuery()`创建HQL(Hibernate查询语言)语句,通过设置参数、执行更新或删除操作,以及进行分页查询。 2. **HibernateTemplate的常用方法**: - `delete(Object entity)`: 删除指定的持久化实体。...
SSH2(Struts2、Spring、...DataSource用于连接数据库,SessionFactory是Hibernate的核心接口,而HibernateTemplate则是Spring对SessionFactory的封装,提供了一种模板方法模式来执行常见的Hibernate操作。 ```xml ...
在SSH框架中,当我们在DAO层执行SQL时,通常会通过Hibernate的Session来获取Connection。例如: ```java Session session = this.getSession(); Connection conn = session.connection(); ``` 在完成数据库...
这些基本的HQL操作涵盖了对数据库的CRUD(创建、读取、更新、删除)操作。在实际开发中,开发者可以根据需求构建更复杂的查询,包括使用JOIN、GROUP BY、HAVING等子句,以及使用更复杂的查询构造。同时,需要注意的...
所以要完成对Lob字段的操作,Hibernate必须执行两步数据库访问操作,先Insert再Update。 使用BlobByteArrayType字段类型后,为什么我们就可以象一般的字段类型一样操作Blob字段呢?可以确定的一点是:...
`替换为字符串"小李想",然后执行`executeUpdate()`来执行更新操作。 2. **HQL删除语句**: HQL删除语句用于从数据库中移除记录。例如,第7行的`delete PhUser a where a.userId=2`将删除`PhUser`表中所有`userId`...
HibernateTemplate提供了丰富的API,可以实现对数据库的基本操作,包括创建(Create)、读取(Read)、更新(Update)和删除(Delete)等。以下是一些常用的方法: 1. `void delete(Object entity)`: 这个方法用于...
值得注意的是,在使用Hibernate DAO时,如果通过Session获取到的连接未正确释放,则可能会导致Session池资源被耗尽,从而影响应用性能。 #### 二、通过Hibernate DAO获取数据库连接的不同方式 在SSH框架中,有两种...
在代码中,`findACL`方法用于根据指定类型、主ID和模块ID查找`ACL`对象,而`getHibernateTemplate().save()`和`getHibernateTemplate().update()`则表明使用了Hibernate作为持久化框架来操作数据库,这简化了数据...
`HibernateTemplate`提供了多种方法来执行基本的数据库操作: - **增加**:`save(Object entity)` 方法用于保存一个新的持久化实例。 - **删除**: - `void delete(Object entity)`:用于删除指定的持久化实例。 ...
DAO类中的其他方法如`getPersons()`、`getPerson()`和`savePerson()`则直接调用`HibernateTemplate`的相应方法来执行数据库操作。 使用`HibernateTemplate`的好处在于它自动处理了事务管理、异常转换和资源关闭等...
在这个实现类中,每个方法都直接调用了`getHibernateTemplate()`提供的便捷方法来执行对应的Hibernate操作,如`delete()`, `save()`, `update()` 和 `get()`。 实体对象`UserInfo`使用了JPA(Java Persistence API...
8. **`void update(Object entity)`**:更新一个现有的对象实例。通常用于修改数据库中已存在的数据。 9. **`void setMaxResults(int maxResults)`**:设置查询的最大结果数量。这对于分页查询非常有用。 #### 三...
在SSH项目中,进行修改操作通常涉及Service层的更新方法,比如`updateCost(Cost cost)`,以及DAO层的相应实现,可能包括调用`getHibernateTemplate().update(cost)`或`getHibernateTemplate().saveOrUpdate(cost)`等...
2. **Hibernate**: 是一个Java语言下的对象关系映射(ORM)框架,它提供了将Java类与数据库表之间的映射,以及SQL语句的自动生成和执行。Hibernate使得开发者能够更专注于业务逻辑,而不是数据库操作。 3. **Druid*...
该类为子类提供了一个名为`hibernateTemplate`的属性,可以通过它调用一系列预定义的方法来进行数据库操作(如查询、更新等)。 - **示例代码**: ```java public class TestA extends HibernateDaoSupport { ...
HibernateDaoSupport 是 Spring 为 Hibernate DAO(数据访问对象)层提供的一个抽象基类,它并不直接执行数据库操作,而是作为一个辅助类,帮助我们更方便地使用 HibernateTemplate。HibernateDaoSupport 主要有两个...