spring-data-jpa更新实体
来源:互联网 发布:华硕超频软件 编辑:程序博客网 时间:2024/04/30 19:06
今天写j2ee大作业的时候写到用户修改信息,需要对用户提交的域进行更新操作,因为还是spring-data-jpa菜鸟,踩了不少坑。。。先把现在有的记录一个
刚开始是想要找一个可以更新整个实体的方法,找到如下方法
在service层的代码中
Customer cust = CustomerDAO.findByUserid(id);//根据id找到要进行修改的实体cust.set....//这里可以调用cust里的各种方法,把界面上更改的cust属性一个个set进去
ok!改完运行!
运行结束回去看数据库表,发现除了这里set的域之外的所有其他域都变成了null,这个显然不是我想要的结果,之后去查看spring-data-jpa的官方文档
发现可以使用@Query
注解进行更新,其中的例子为:
@Modifying@Query("update User u set u.firstname = ?1 where u.lastname = ?2")int setFixedFirstnameFor(String firstname, String lastname);
既然这样的话,在dao层还是不要一整个实体更新了吧,感觉会造成hin大的压力,也使用这种方法对实体的每个域写一个更新的方法,在service层可以只更新修改的域,也为之后修改会员等级留个方便的接口
修改dao层接口
@Modifying@Query("update Customer as c set c.name = ?1 where c.userid=?2")int updateNameById(String name, int id);
其他各域原理同上
ok!再次运行!
结果又报错!!
... nested exception is org.springframework.dao.InvalidDataAccessApiUsageException: Executing an update/delete query; nested exception is javax.persistence.TransactionRequiredException: Executing an update/delete query...
说是Transaction的问题,google一下,说要在dao层的update方法上添加@Transaction进行事务管理
那就加上!
这次应该没问题了吧。。。再次运行,结果。。。
终于成功啦!~
好了,这次spring-data-jpa更新实体的记录就到这里,只是记录备忘,如果有错的话欢迎指出!
参考:http://stackoverflow.com/questions/10220262/updating-boolean-value-in-spring-data-jpa-using-query-with-hibernate
2 0
- spring-data-jpa更新实体
- spring-data-jpa实体继承
- Spring Data JPA更新操作
- Spring Data Jpa中实体主键问题
- Spring data jpa批量插入和更新
- Spring data jpa批量插入和更新
- spring data jpa 查询自定义字段,转换为自定义实体
- spring-data-jpa只查询实体部分字段
- idea 从数据库快速生成Spring Data JPA实体类
- Spring data jpa findByItemid查询出同一个实体
- spring data jpa 自定义查询和更新的区别
- 利用Java反射解决Spring Data JPA繁琐更新操作
- Jpa到Spring data jpa
- Spring Data JPA
- Spring-Data-Jpa
- Spring Data JPA
- Spring data jpa
- Spring Data JPA 使用
- js基础10-应用案例
- 替罪羊树 板子
- C++编译与链接
- linux进入一个目录以及在目录中创建文件所需要的权限
- 单例模式
- spring-data-jpa更新实体
- C3p0数据库连接池的使用
- 几种按键扫描软件处理方法
- Object-c 基础 不可变数组与可变数组
- 机房重构准备工作(3)---反射+抽象工厂
- Codeforces Round #405 (rated, Div. 2, based on VK Cup 2017 Round 1) 菜鸡只会ABC!
- 转接IC MS7024:RGB转CVBS/S-Video芯片
- 买不到的数目
- 轻巧方便的触摸滑动插件-swiper,常用参数整理(一)