|
这个主题共有 5 回复 / 1 页 [
]
|
|
|
|
|
|
请教关于DAO事务控制
|
发表: 2007年06月14日 11:07
|
回复
|
|
在设计DAO的时候,我有个疑问,不知道大家是怎么解决的? 在Client端(Service)调用DAO接口的时候,我想是如下情况 Dao1 d1 = Spring.getBean("dao1"); Dao2 d2 = Spring.getBean("dao2"); d1.save(obj1); d2.update(obj2); 然后在这个代码的基础上的事务控制,是做在一个地方的,如果写全应该是如下伪代码: tx = manager.getTransaction(); tx.beginTransaction(); d1.save(obj1); d2.update(obj2); tx.commitTransaction(); 大概是这个样子,没有写全,在这里事务的控制能否抽象出来在一个地方做?是不是要用AOP来实现?因为每个dao中的方法我不想做事务控制,我感觉dao是一个相对独立的操作。 请大家指教... [该贴被cscs31于2007年06月15日 12:21修改过] [该贴被cscs31于2007年06月15日 13:41修改过] [该贴被cscs31于2007年06月15日 13:43修改过]
|
|
|
|
|
|
回复:请教关于DAO事务控制
|
发表: 2007年06月15日 15:50
|
回复
|
|
可以提高到Service中使用JTA来实现事务。
注意:你的调用DAO方式:Dao1 d1 = Spring.getBean("dao1");有误,业务层Service和DAO层是同在一个Spring容器中,不能以getBean这样容器外调用方式调用,直接使用IOC注射即可。
|
|
|
|
|
|
re:请教关于DAO事务控制
|
发表: 2007年06月15日 16:51
|
回复
|
|
不好意思不太懂Spring,如果我直接用getBean是会有Exception抛出吗? IOC注射,主要是哪几句API?
|
|
|
|
|
|
re:请教关于DAO事务控制
|
发表: 2007年06月15日 18:05
|
回复
|
|
|
不需要代码,直接在Spring的配置文件里配类之间的调用关系,可以用构造方法或者SET方法来实现注入,找书看一下,非常简单的
|
|
|
|
|
|
re:请教关于DAO事务控制
|
发表: 2007年06月15日 18:07
|
回复
|
|
|
用AOP来做,当有update , insert , delete操作时,自动调用transaction
|
|
|
|
|
|
re:请教关于DAO事务控制
|
发表: 2007年06月19日 09:29
|
回复
|
|
谢谢各个,我想了一下,多个操作的可能不太多,大多是单个的操作,那么用AOP的方法比较好,还有就是多个操作用AOP可能不太好实现。 所以决定单个用AOP,多个的直接在DAO层前加一层调用层,然后再在Service层中调用。折中吧...
|
|
|
|