一定要O/R Mapping吗?
来源:互联网 发布:java 初始化顺序 编辑:程序博客网 时间:2024/05/01 21:57
<script type="text/javascript">google_ad_client = "pub-8800625213955058";/* 336x280, 创建于 07-11-21 */google_ad_slot = "0989131976";google_ad_width = 336;google_ad_height = 280;//</script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>对象存储目前最热闹的方式是O/R Mapping,但我个人认为这种方式不是解决问题的办法。真正的办法是参照关系数据库,设计"持久对象管理器","持久对象管理器"应当具备如下特性:1. 所有持久对象只存活于持久对象管理器中,持久对象不到处移动。2. 持久对象与传统关系数据库的区别在于,持久对象有面向对象的所有特点,包括行为、继承、关系表示等。3. 要让某个持久对象,或者某类持久对象工作,采用类似sql语句的方式通知这些持久对象,这些持久对象会在持久对象管理器内部,协同其它持久对象一起完成工作。4. 如果某操作需要先拿到持久对象,再对持久对象进行操作,那么该操作拿到的将是持久对象的代表,即id号,它通过id号让该持久对象在"持久对象管理器"内部工作。这种方式与传统的RMI分布式解决方案有很大不同,有自己非常明显的优势。5. 持久对象管理器可以采用分布式处理。6. 持久对象管理器除了添加面向对象特性外,应当继承传统关系数据库所发展起来的众多概念及技术,包括事务、延迟写数据、日志、游标、批量数据处理(在持久管理器中,可以叫做"批量对象处理"等等。