jpa更新操作,数据库更新了,但是查询的还是旧的数据

jpa进行update的操作后,更新了数据库,但是一级缓存没有更新,所以紧接着查询出来的是缓存中的旧数据,此时只要在对应的

update方法上加入@Modifying(clearAutomatically = true)即可,它更新完数据库后会主动清理一级缓存。

@Transactional
@Modifying
@Query(value = "update new_user_news_pool p set p.status=?2 where p.pk=?1 ", nativeQuery = true)
int updateStatusByPk(long pk, int status);

 

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
更新数据库数据,您需要使用Java Server Pages(JSP)中的Java代码来执行数据库更新操作。以下是一些示例代码,演示了如何在JSP中使用Java代码更新数据库: 1. 使用JDBC API更新数据库: ```java <%@ page import="java.sql.*" %> <% // 获取数据库连接 Connection conn = null; String url = "jdbc:mysql://localhost/mydb"; String user = "username"; String password = "password"; try { Class.forName("com.mysql.jdbc.Driver").newInstance(); conn = DriverManager.getConnection(url, user, password); } catch (Exception e) { e.printStackTrace(); } // 执行更新操作 String sql = "UPDATE users SET name='new name' WHERE id=1"; Statement stmt = conn.createStatement(); int rows = stmt.executeUpdate(sql); // 关闭连接 stmt.close(); conn.close(); %> ``` 2. 使用JPA更新数据库: ```java <%@ page import="javax.persistence.*" %> <% // 获取EntityManagerFactory EntityManagerFactory emf = Persistence.createEntityManagerFactory("mydb"); // 获取EntityManager EntityManager em = emf.createEntityManager(); // 开始事务 EntityTransaction tx = em.getTransaction(); tx.begin(); // 查询实体对象 User user = em.find(User.class, 1); // 更新实体对象 user.setName("new name"); // 提交事务 tx.commit(); // 关闭EntityManager和EntityManagerFactory em.close(); emf.close(); %> ``` 以上示例代码仅供参考,您需要根据自己的具体情况进行修改和适应。同时,为了确保安全性和可维护性,建议您将数据库更新操作封装在Java类中,而不是直接在JSP中执行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值