3

我有一个用 Java 运行的服务器,并且插入的所有数据都使用 Hibernate 存储在 MySQL 数据库中。

我正在尝试将所有这些数据传递给我的 Android 应用程序,因此我必须在两侧声明相同的实体类。关键是 Android 不支持 Hibernate,所以我的 Android 实体类中不能有 Hibernate 注释。

我该如何解决这个问题?

我曾想过创建一个名为 EntityAndroid 的辅助类,它不会有 Hibernate Annotations。因此,每当 Android 请求到达服务器时,我会将一个 Entity 类(带有 Hibernate 的东西)转换为 EntityAndroid 类(类似于另一个,但没有 Hibernate 的东西),并将这个辅助对象传递给 Android 应用程序(显然,我会在 Android 应用程序中具有相同的 EntityAndroid 类服务器)。这将需要太多的服务器,因为我在表之间有很多关系。

4

3 回答 3

1

我最终在 Android 和 Server 项目中创建了新的实体类,并且我正在使用这些类从 Server 传递到 Android。这些类没有来自 Hibernate 的注释,并且所有外键都被视为整数(在 Hibernate 中,我拥有外键的整个对象实体)。因此,在将这些实体发送到应用程序之前,我进行了此转换,这只是对填充 android 实体的休眠实体的所有字段的迭代(与休眠实体相同,但没有注释和外键是整数)

这可能不是最好的解决方案,因为它可能会浪费太多的处理器和内存,但是因为我不会有太多要转换的实体,所以我想应该没问题

于 2013-07-26T12:13:37.070 回答
1

为什么不使用休眠 XML 映射样式?您将使用没有注释的类,这可能会清除 Android 中的错误。

于 2013-06-06T17:17:46.987 回答
0

It does not make sense to me to have Entities on Android if you store / retrieve the data via your server. I would focus on creating webservices on the server side for retrieving and storing your changes.

Let your webservice serialize the entity objects to a JSON data structure (for example) that you can read and convert back to an object in your Android app. When an object was changed in your client you can send it back to the server via a webservice which converts the JSON structure back to an entity.

Hope this helps.

于 2013-06-06T17:15:47.923 回答