【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”
Spring在继承Hibernate的时候,提供了一个HibernateTemplate类,算是工具类吧,在这里,能够完成数据库的基本操作。
请问Dao和HibernateTemplate的关系是如何的呢?在项目中,我们应该如何来组织它们之间的关系。
-------------------------------
我个人认为,可以通过service,来提供外界操作一个领域模型的相互关联关系,而至于数据库操作,通过HibernateTemplate直接交互即可。因为Dao,我们也只是写一个基类+泛型,然后去写类继承它。
根据实际情况来,service还会存在相互调用的情况呢。
先写好service,随时重构整理吧。
Dao中 调用实现HibernateTemplate,查询数据返回给service层,实现数据调用与业务的松耦合,Dao是三层必不可少的东西。
如果你说直接在service层调用hibernatetemplate的话,那你以后项目做大,要进行维护的时候,改数据调用,还得去改service层,这也好说,改就改吧,但是你想,你如果Aservice调用取所有用户的一个方法,Bservice也用了这个方法,你这两个service都要去修改,两个也好说,那要是100个,1000个呢。而如果你用dao层,一次调用,一次修改,做到了编程的 write once ,only once。
所以。dao是必要的。
引用来自“Track3r”的答案
Dao中 调用实现HibernateTemplate,查询数据返回给service层,实现数据调用与业务的松耦合,Dao是三层必不可少的东西。
如果你说直接在service层调用hibernatetemplate的话,那你以后项目做大,要进行维护的时候,改数据调用,还得去改service层,这也好说,改就改吧,但是你想,你如果Aservice调用取所有用户的一个方法,Bservice也用了这个方法,你这两个service都要去修改,两个也好说,那要是100个,1000个呢。而如果你用dao层,一次调用,一次修改,做到了编程的 write once ,only once。
所以。dao是必要的。
引用来自“艳沐石”的答案
引用来自“Track3r”的答案
Dao中 调用实现HibernateTemplate,查询数据返回给service层,实现数据调用与业务的松耦合,Dao是三层必不可少的东西。
如果你说直接在service层调用hibernatetemplate的话,那你以后项目做大,要进行维护的时候,改数据调用,还得去改service层,这也好说,改就改吧,但是你想,你如果Aservice调用取所有用户的一个方法,Bservice也用了这个方法,你这两个service都要去修改,两个也好说,那要是100个,1000个呢。而如果你用dao层,一次调用,一次修改,做到了编程的 write once ,only once。
所以。dao是必要的。
引用来自“hantsy”的答案
Thanks! If using native Hibernate API, how I can do manage the transaction.
Really, I don't want to use Hibernate because of the chain of Hibernate making me confuse.