问题描述
hibernate支持透明持久化,怎么理解呢?
解决方案
关于“透明持久化”Transparent Persistence“透明持久化”,- 它是实现DAO的一种更好的方式(不要将其和上面谈到的那个并不漂亮的DAO实现搞混了)- 它通常是由框架来实现,而不是由应用本身来关心。它能完全剥离业务的持久化操作,仅仅只需提供一个接口供业务逻辑调用(如Hibernate的 Session,JDO的PersistenceManger——JDO并不是基于O/R映射,而是基于字节码增强来实现透明持久化的,iBATIS的 SqlMap对象等)。它可能还有自己特殊的语意(如Hibernate的HQL,因为它必须自己实现真正的SQL,提供的HQL可以简化这一过程,同时也简化了业务逻辑持久化时的工作量)。- 它可以自动侦测所取出的对象的修改(当然,同时应该有提供缓存),并在事务提交时自动将修改后的状态持久化到数据库。- 它很复杂^-^虽然实现“透明持久化”方案非常复杂,但我们不需要重新发明轮子,多数情况下,Hibernate,iBATIS,JDO实现已经完全可以满足我们的持久化需求。
时间: 2024-11-03 18:13:34