lishunli / nutz

Automatically exported from code.google.com/p/nutz
0 stars 0 forks source link

Nutz DAO的事物是否能参考Spring的声明式事物管理方式比较好,不知道是否有计划? #162

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
疑问:
    1、用Atom界定事物还是会把事物界定代码和逻辑代码硬编码在一起;
    2、用Atom界定事物是否支持嵌套?
动机:
    1、事物感觉还是在service层,通过声明式方式管理比较好,这样业务逻辑代码重
用性更好;
    2、service调用其他service的情况还是比较普遍的,用硬编码会造成事物嵌套问
题,可能会带来事物混乱;
想法:
    1、声明式管理事物;
    2、目前Nutz的service基类是否作为DAO的基类?实际项目中servcie会引用多个DAO
以实现更复杂的业务逻辑;

Original issue reported on code.google.com by hzzd...@gmail.com on 22 Apr 2010 at 6:59

GoogleCodeExporter commented 9 years ago
Atom 界定的事务支持嵌套

这个需求可以考虑,如果你的 Service 类是通过 Ioc 
容器管理的,那么可以考虑支持一个注解,来表示一个函数��
�支
持事务的

Service 类可以作为你自己的 Crud 的基类, 
实际上它就是一个简单的对象, 
你可以写自己的对象组合多个 Dao

Original comment by zozoh...@gmail.com on 22 Apr 2010 at 7:09

GoogleCodeExporter commented 9 years ago

Original comment by zozoh...@gmail.com on 22 Apr 2010 at 7:11

GoogleCodeExporter commented 9 years ago
总之,是想把:

public void doSomething(final Pet pet){
    Trans.exec(new Atom(){
        public void runt(){
            dao.update(pet);    
            dao.update(pet.getMaster());
        }
    });
}

改成这样的代码

@Trans
public void doSomething(Pet pet){
    dao.update(pet);    
    dao.update(pet.getMaster());
}

Original comment by zozoh...@gmail.com on 22 Apr 2010 at 7:15

GoogleCodeExporter commented 9 years ago
从代码上讲,主要就是你说的这个区别。
当然用配置文件配置也是可以接受的。

Original comment by hzzd...@gmail.com on 22 Apr 2010 at 7:23

GoogleCodeExporter commented 9 years ago
需要把 Trans.begin / commit / rollback / depose 这几个函数开放
然后在 Ioc 容器里,通过 @Aop 可以达到这个目的

Original comment by zozoh...@gmail.com on 22 Apr 2010 at 7:29

GoogleCodeExporter commented 9 years ago
采用了 DaoRunner 接口封装了运行逻辑:
Fixed in r1164

详见 wiki:  [dao_runner]

Original comment by zozoh...@gmail.com on 30 Apr 2010 at 11:09

GoogleCodeExporter commented 9 years ago
wiki 地址: http://code.google.com/p/nutz/wiki/dao_runner

Original comment by zozoh...@gmail.com on 30 Apr 2010 at 11:14

GoogleCodeExporter commented 9 years ago

Original comment by wendal1985@gmail.com on 13 May 2010 at 11:13

GoogleCodeExporter commented 9 years ago
Verified in 1.a.28

Original comment by wendal1985@gmail.com on 15 May 2010 at 8:29