【发布时间】:2010-05-25 06:39:17
【问题描述】:
我有一个由客户端/服务器 + 网页组成的游戏。客户端和游戏/网络服务器的核心概念是Account。帐户存储在数据库中,因此我需要一些 ORM,最近查看了 Hibernate 和 Cayenne。
然而,我的理解是,这两个框架都提供了一个"DatabaseBackedAccount"-class,我用我的其他 Account 方法扩展了。我的问题是 Account 类在客户端被大量重用,我显然不想在客户端实现中包含与数据库相关的代码。
我当前的解决方案是拥有一个Account 类(由服务器和客户端共享)并在服务器端使用DatabaseBackedAccount(覆盖setter 方法并提供提交方法)对其进行扩展。我觉得这很自然也很好,但是我必须自己实现所有血腥的 sql-details 和 ORM。
有没有办法在任何现有的 ORM 框架中“扭转局面”,让生成的类扩展我现有的类?
【问题讨论】: