java – 事务管理器和实体管理器之间有什么区别
作为一名学生,我阅读了几乎所有的春季文档.据我所知,春天是配置怪物.基于注释或基于Xml,它没关系,但我真正不理解的是事务管理器和实体管理器之间的区别. 如果我们在Dao层上注入了entityManager,为什么我们需要服务层上的事务管理器,反之亦然.如果我们注入事务管理器(包装实体管理器)为什么我们需要在DaoLayer上注入entitymanager.对于JPARepositories,我甚至不需要注入任何经理. Spring为我做了一切(我真的不懂机械).我的另一个问题是JPARepositories Spring使用entityManager还是transactionManager? 最佳答案
TransactionManager与EntityManager完全不同,一个负责实体(监听器,实体,关系,它们的持久性生命周期以及此接口定义用于与持久性上下文交互的方法)与特定持久性上下文相关联的实体同时,TransactionManager负责事务数据访问,支持应用程序中需要进行的所有事务.
配置将一个entitymanager对象绑定到特定的事务管理器.
这意味着与数据库和实体的连接由EntityManager管理,但使用@Transaction批注在服务层中打开close事务的对象是TransactionManager. javax.transaction.TransactionManager接口允许应用程序服务器代表正在管理的应用程序控制事务边界,该接口包含许多用于控制它们的方法,例如:commit,suspend,rollback. 因此,基本上注入其中一个对象取决于您要查找的内容,管理实体并使用它们操作使用entitymanager,通过自己使用transactionmanager控制应用程序的事务状态. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- lua之card 游戏
- lua中沙盒函数的定义-closure的使用
- InnoSetUp指定桌面快捷方式和快速启动图标
- unit-testing – 在Spock测试中的where:block中传递一个值
- 解决delphi XE5中使用RESTClient提交Body类型的乱码问题
- Flask笔记:数据库ORM操作MySQL+pymysql/mysql-python+SQLA
- perl基本语法
- vb.net – Web.config jsonSerialization maxJsonLength被忽
- delphi – 如何伪造表单测试输入?
- delphi – 如何在TCheckBox,TRadioButton,TGroupBox上更改字