首页 > 编程知识 正文

jpa实体类,hibernate注解

时间:2023-05-03 18:09:59 阅读:106034 作者:1534

项目正在进行时,需要在@Modifying注释中完成更正操作。 (注意:不支持添加新内容。 )

1 .以前,某个业务需要查询结果集,然后在结果集中满足某些条件的另一个表中更改字段的属性值。 这个变更可能有多个

代码如下所示

2.SQL语句包括:

3 .但是,在运行过程中,控制台将报告错误如下

cannotissuedatamanipulationstatementswithexecutequery ()。

4 .后来发现没有添加@Modifying注释

谈谈@Modifying注释的实际使用吧

例如,测试

@ modifying @ query (updatepersonsetemail=: emailwherelastname=: last name ) )。

voidupdatepersonemailbylastname @param (last name ) String lastName,@ param ) ) email ) String email;

执行错误、异常如下。

通过查看此caused by : javax.persistence.transactionrequiredexception : executinganupdate/delete query,可以发现缺少事务配置

您可以将service事务控制器管理添加到service实现类、方法或xml文件中

@Service

@Transactional

context 3360 component-scan base-package=' com.Liwei.spring data.service '/context 3360 component-scan

总结如下

)1)可以通过自定义JPQL进行UPDATE和DELETE操作。 注意: JPQL不支持使用INSERT;

)2)在@Query注释中写入JPQL语句,但必须用@Modifying进行限定。 通知SpringData这是一个更新或删除操作

)3)必须在UPDATE或DELETE操作中使用事务,如果是这样,则必须定义Service层,并将事务操作添加到Service层的方法中;

)4)缺省情况下,SpringData中的每个方法都有一个事务,但它是只读事务。 他们无法完成修改操作。

原文: https://www.cn blogs.com/Mr-wuxian sheng/p/6189270.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。