从零开始接触jpa,工作中偶遇update问题
2016-05-25 15:50
253 查看
今天在用jpa写update语句时碰到了2个问题
运行报错:
org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations
发现不支持DML操作
百度发现需要@Modifying支持,改为如下:
Executing an update/delete query; nested exception is javax.persistence.TransactionRequiredException
分析应该是缺少事务,加入@Transactional
public interface RRyxxbMapper extends JpaRepository<RRyxxb, Integer>, JpaSpecificationExecutor<RRyxxb> { @Query("update RRyxxb set bzzt = ?2 where rid=?1") void updateRRyxxb(Integer rid,Integer bzzt); }
运行报错:
org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations
发现不支持DML操作
百度发现需要@Modifying支持,改为如下:
public interface RRyxxbMapper extends JpaRepository<RRyxxb, Integer>, JpaSpecificationExecutor<RRyxxb> { @Modifying @Query("update RRyxxb set bzzt = ?2 where rid=?1") void updateRRyxxb(Integer rid,Integer bzzt); }运行继续报错:
Executing an update/delete query; nested exception is javax.persistence.TransactionRequiredException
分析应该是缺少事务,加入@Transactional
@Transactional(rollbackFor = Exception.class) public String update(Integer rid,Integer bzzt){ String message = "0"; if(rid!=null&&bzzt!=null){ try { rRyxxbMapper.updateRRyxxb(rid, bzzt); message = "1"; } catch (Exception e) { System.out.println(e.getMessage()); } } return message; }运行ok,解决了!
相关文章推荐
- Liunx下ffmpeg的安装
- 工具类创建验证码
- 关于js中"window.location.href"、"location.href"、"parent.location.href"、"top.location.href"的用法
- Redis 存储分片之代理服务Twemproxy 测试
- DevOps 10大IT管理工具(翻译)
- shader实例(八)渲染路径RenderingPath
- GStreamer基础教程07——多线程和Pad的有效性
- mailx for smtps over qqexmail
- 网页抓取:PHP实现网页爬虫方式小结
- RxJava操作符doOnNext
- Android 反编译工具使用
- 乌班图关闭防火墙命令
- NYOJ61 传纸条(一) 双线程dp
- 项目经验总结(—)
- 【OpenCV_04】从文件以及摄像头读取视频
- 使用jquery提交form表单并自定义action的方法
- [OpenGL ES 06]使用VBO:顶点缓存
- IOS中获取各种文件的目录路径的方法
- js之三类(冒泡,插值,二分)排序算法
- Spark中组件Mllib的学习38之随机森林(使用variance)进行回归