gpt4 book ai didi

java - 通过数据库实现扩展基类的 ORM 框架

转载 作者:行者123 更新时间:2023-11-30 05:12:33 24 4
gpt4 key购买 nike

我有一个由客户端/服务器+网页组成的游戏。客户端和游戏/网络服务器的核心概念是帐户。帐户存储在数据库中,因此我需要一些 ORM,最近查看了 Hibernate 和 Cayenne。

然而,我的理解是,这两个框架都提供了一个“DatabaseBackedAccount”类,我用我的其他Account方法扩展了该类。我的问题是 Account 类在客户端被大量重用,我显然不想在客户端实现中包含与数据库相关的代码。

我当前的解决方案是拥有一个 Account 类(由服务器和客户端共享)并使用 DatabaseBackedAccount 扩展该类(覆盖 setter 方法并提供提交方法)在服务器端。我发现这非常自然和美好,但是我必须自己实现所有血淋淋的 sql 细节和 ORM。

有没有办法在任何现有的 ORM 框架中“扭转局面”,以便生成的类扩展我现有的类?

最佳答案

在 JPA 中(以及在 hibernate 中,但我更了解 JPA),实体类内部没有魔法,它们只是带有注释的 POJO(或通过 xml 配置)。因此,您可以在客户端愉快地使用它们,而不会对服务器端产生任何影响,因为所有魔法都是通过 EntityManager 接口(interface)从外部发生的。

更一般地说:不应允许帐户提交自身(就像不应允许其创建或删除自身一样),应该有一个服务或 DAO 从外部执行此操作,从而创建漂亮、干净的 POJO,您可以在客户端和服务器端使用。

关于java - 通过数据库实现扩展基类的 ORM 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2902523/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com