g*g
2 楼
Of course you do it in service. So you make decision whether to rollback
with certain exception, whether to combine multiple writes into one
transaction etc. How else can you do it when you operate multiple DAOs?
Keep dao simple and dumb. The way I like to think what DAO should be is:
If you have to change to another DB, with a very different implementation (
JDBC, iBatis you name it). Can you not alter your service, and still
minimize the code you have to write on new DAO.
【在 z*******3 的大作中提到】
: service还是dao/repository?
with certain exception, whether to combine multiple writes into one
transaction etc. How else can you do it when you operate multiple DAOs?
Keep dao simple and dumb. The way I like to think what DAO should be is:
If you have to change to another DB, with a very different implementation (
JDBC, iBatis you name it). Can you not alter your service, and still
minimize the code you have to write on new DAO.
【在 z*******3 的大作中提到】
: service还是dao/repository?
t*e
3 楼
应该问从哪一层开始transaction. 从web就可以开始了。
z*3
4 楼
我也是觉得在service做比较合理
但是在service做,spring用aop来作,ejb容器用显式的transaction标记来做
appengine的objectify就没有办法了,除非加上guice的aop
那样就大了,就慢了,所以我现在只能做在dao里面
从web就开始做,有点太过于早了点
毕竟action跟service很可能是在不同物理机器上的
这样跨机器搞transaction是忌讳,还是不要了
但是在service做,spring用aop来作,ejb容器用显式的transaction标记来做
appengine的objectify就没有办法了,除非加上guice的aop
那样就大了,就慢了,所以我现在只能做在dao里面
从web就开始做,有点太过于早了点
毕竟action跟service很可能是在不同物理机器上的
这样跨机器搞transaction是忌讳,还是不要了
w*z
6 楼
from my previous job, we start transaction in service layer.
【在 g*****g 的大作中提到】
: Of course you do it in service. So you make decision whether to rollback
: with certain exception, whether to combine multiple writes into one
: transaction etc. How else can you do it when you operate multiple DAOs?
: Keep dao simple and dumb. The way I like to think what DAO should be is:
: If you have to change to another DB, with a very different implementation (
: JDBC, iBatis you name it). Can you not alter your service, and still
: minimize the code you have to write on new DAO.
【在 g*****g 的大作中提到】
: Of course you do it in service. So you make decision whether to rollback
: with certain exception, whether to combine multiple writes into one
: transaction etc. How else can you do it when you operate multiple DAOs?
: Keep dao simple and dumb. The way I like to think what DAO should be is:
: If you have to change to another DB, with a very different implementation (
: JDBC, iBatis you name it). Can you not alter your service, and still
: minimize the code you have to write on new DAO.
s*e
7 楼
感觉db transparent对绝大多数公司来说只有理论上的好处,好多年前,我们的还把这
个作为要求之一,现在发现,在一个大公司,换DB的可能性太小了,与其在上面投入精
力,不如根本不考虑,等到真正换的时候再说。
【在 g*****g 的大作中提到】
: Of course you do it in service. So you make decision whether to rollback
: with certain exception, whether to combine multiple writes into one
: transaction etc. How else can you do it when you operate multiple DAOs?
: Keep dao simple and dumb. The way I like to think what DAO should be is:
: If you have to change to another DB, with a very different implementation (
: JDBC, iBatis you name it). Can you not alter your service, and still
: minimize the code you have to write on new DAO.
个作为要求之一,现在发现,在一个大公司,换DB的可能性太小了,与其在上面投入精
力,不如根本不考虑,等到真正换的时候再说。
【在 g*****g 的大作中提到】
: Of course you do it in service. So you make decision whether to rollback
: with certain exception, whether to combine multiple writes into one
: transaction etc. How else can you do it when you operate multiple DAOs?
: Keep dao simple and dumb. The way I like to think what DAO should be is:
: If you have to change to another DB, with a very different implementation (
: JDBC, iBatis you name it). Can you not alter your service, and still
: minimize the code you have to write on new DAO.
g*g
12 楼
o*i
13 楼
想体验一把hibernate今天去和头说能不能在我负责的project里用hibernate结果被秒据
了。。。
【在 g*****g 的大作中提到】
: 看你项目有多小了,写完就可以扔掉是不需要。业界的框架和工具都是根据这些分层的
: 理念
: 来设计的,为的是好的可扩展性和可维护性。即便显得繁琐,也可以使日后的维护变得
: 简单。
: 以spring+hibernate为代表的中后层,现在并没有明显的冗余代码。事实上一个
: annotation就可以标明transaction,不能再简单了。这要比写JDBC容易多了。
: 如果项目非常简单,可以考虑的是用Spring Roo之类的工具直接把大部分代码生成了。
了。。。
【在 g*****g 的大作中提到】
: 看你项目有多小了,写完就可以扔掉是不需要。业界的框架和工具都是根据这些分层的
: 理念
: 来设计的,为的是好的可扩展性和可维护性。即便显得繁琐,也可以使日后的维护变得
: 简单。
: 以spring+hibernate为代表的中后层,现在并没有明显的冗余代码。事实上一个
: annotation就可以标明transaction,不能再简单了。这要比写JDBC容易多了。
: 如果项目非常简单,可以考虑的是用Spring Roo之类的工具直接把大部分代码生成了。
相关阅读
Maven's newbie question改写(migrate) stored proc 问题eclipse能自己升级自己吗?请教一个SOAP的问题,多谢这玩意儿怎么做的?A question about JRE and JDK:使用SNMP去monitor JBOSS里面的应用大文件的download如何管理?Web application deployment 的问题为什么国内现在做网站都是ASP.NET 呢? (转载)文件分割的问题如何做windows安装程序包 (转载)请教,business analyst 适合学什么语言?问个eclipse的问题网页上的Java小动画片段怎么download下来? (转载)java 随机数 nextInt(int n)的问题Process的问题问大牛个问题,怎么能把里面的图片保存下来?现在考certificate,有什么网站可以参考?据说ibm不买sun了?