Spring Data Jpa(一)

作者: 筑梦_Dream | 来源:发表于2019-11-26 16:48 被阅读0次

    概述

    首先JPA是一种ORM框架的规范,Hibernate和Spring data都是实现了这个规范的框架,所以在一些概念上两者相似。

    实体状态

    1. 新建:实体对象刚刚new出来,还没进行save等操作。
    2. 托管:实体对象关联了session。
    3. 游离:实体与session失联。
    4. 销毁:实体被执行remove等方法。

    使用事项

    • 实体在托管状态时,因与session关联,此时对实体进行属性修改,在事务提交后,实体修改后的属性会自动提交到数据库,但spring data的save方法执行后修改属性,则不会自动刷新,因为这些方法带有事务注解,用EntityManager的persist方法则可以。
    • Spring的事务嵌套问题,如果调用一个方法,此方法不带有事务注解,但此方法内部调用一个带有事务的方法,那么这个方法事务会失效,解决办法是将事务添加到调用者,或者将被调方法移到其他类等等。
    • 如果一个带有事务的方法调用另一个带有事务的方法,但调用时使用了try catch,那么另一个方法出错会标记回滚,但是在调用方却未抛出异常,这时即使调用方提交,也会出现 “已经标记异常,不能提交”的错误,解决办法可以是,try方取消事务标记或者不要try一个标记事务的方法。

    相关文章

      网友评论

        本文标题:Spring Data Jpa(一)

        本文链接:https://www.haomeiwen.com/subject/xyqywctx.html