写点什么

简化持久性实体的传递

  • 2009-05-11
  • 本文字数:801 字

    阅读完需:约 3 分钟

Gilead 旨在实现

把持久性实体简便地传送到 JVM 环境外。

Gilead 的全称是Generic Light Entity Adapter,之前曾叫做 Hibernate4GWT 。随着开发团队开始支持其他一些框架,项目于是修改成当前的名字,

由于 Gilead 目前可以处理的前端技术不单单 GWT 一个,而且还计划支持 Hibernate 以外的 JPA 实现,所以,我们换了一个含义更宽泛的名字。

创建 Gilead 项目的主要目的是减轻人们把持久性实体传递到其他系统或者其他技术前端时遇到的痛苦。为什么这个过程那么棘手呢?通常是由于持久化框架在编译期或者运行期修改类的定义,添加某些所需信息以减少持久化实体时的麻烦。如此一来,当这些修改了的对象传送到 JVM 外面以后,就会发生一些奇怪的事情,比如说接收方甚至可能会抛出“NoClassDefFoundError”、“ClassCastException”之类的错误。

针对这种情况,Gilead 采取了“克隆-合并”(clone-merge)策略。对象从服务器发送出来的时候,本身会被克隆,

克隆操作会根据持久性实体创建普通实例,这个实例既不包含代理,也不包含带持久化特性的集合。

当对象返回给服务器时,Gilead 可以以下面三种“模式”中的任一种来合并返回的对象。

  1. 无状态:对象类型必须继承自 LightEntity ,或者实现 ILightEntity 接口,这样持久化信息才会被保存在克隆出来的对象上面(服务器上不保留相关信息)。
  2. 有状态:持久化信息是保存在 HTTP 会话里面。
  3. 动态代理:这也是一种无状态模式,尚处试验阶段。适用于无法修改已有遗留代码来满足无状态模式的情况。

目前,Gilead 的版本是 1.2.2,可以对采用 Hibernate 作为 JPA 实现框架的应用系统提供可靠的克隆 / 合并操作。同时,Gilead 对包括 GWT Flex (使用 BlazeDS 数据库)在内的前端技术提供成熟的适配器。

Gilead 的下一个版本 1.3,计划提供基于 XML/Web Services 技术的适配器,支持 OpenJPA(EclipseLink 将来也会纳入支持范围)以及其他一些改进。

查看英文原文 Easy Persistent Entity Transfers

2009-05-11 15:542406
用户头像

发布了 76 篇内容, 共 28.6 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

精纯还是混乱?职场十二箴言——重读“成为乔布斯”的思考(二)

石君

创业 乔布斯 成为乔布斯

我的第一个千万阅读量

彭宏豪95

创作 生活 写作

走出舒适区最好办法别走了,扩大它

乐少

dubbo-go 中如何实现远程配置管理

joe

Apache 开源 微服务 dubbo Go 语言

精纯还是混乱?职场十二箴言——重读“成为乔布斯”的思考(一)

石君

职场 乔布斯 成功学

分布式数据库是无用的屠龙术吗?

海边的Ivan

企业架构 分布式数据库 业务中台

探究vscode debug流程,解决无法运行go程序的问题

simpleapples

vscode Go 语言

【SpringBoot】掌握这两个属性,你的测试类可以启动的更快些

遇见

Java Spring Boot Unit Test

Kubernetes 容器运行时演进

倪朋飞

Kubernetes 容器 云原生

Kubernetes中的CI/CD

倪朋飞

Kubernetes DevOps 微服务

Elasticsearch文档版本冲突原理与解决

Skysper

elasticsearch 乐观锁 悲观锁

小议RPA

一品凡心

人工智能 RPA 自动化

任正非管理哲学中的三个常识和三种科学

霍太稳@极客邦科技

创业 团队管理 华为

做产品的同理心

孙苏勇

产品 产品经理 产品设计

《小狗钱钱》——财富离我们并不遥远

Yin

读书笔记 投资 成长 思维方式

简单到不可能失败 —— 《微习惯》

零和幺

读书笔记

如何解决 Kubernetes 的 DNS 延迟问题

倪朋飞

Kubernetes 微服务 云原生

我如何用 Python 给 Github 的 README.md 做一个访客统计功能

遇见

Python GitHub 开源 badge open-source

是时候要说再见了,春风十里,不如邮你!

乐少

删掉最后一句话

池建强

心理学 情绪控制

【深度】为您解读东西方艺术教育的专业设置差异对比~

默聲

做小池塘里的大鱼,还是大池塘里的小鱼?这是个问题。

霍太稳@极客邦科技

创业 团队管理 目标管理

特别评论:甲骨文的傲气

张晓楠

云计算 互联网巨头 企业文化

HTTP Methods和RESTful API的设计

孙苏勇

架构 系统设计 RESTful 接口

GitHub知错就改,是个好同志

遇见

GitHub

用你喜欢的 emoji 作为页面的 favicon 吧 🎉

遇见

CSS html favicon emoji

一篇文章搞定 java 中的 path 和 classpath

shengjk1

Java classpath vs path classpath path

如何做一名失败的安全架构师

石君

架构 安全架构师 安全评估

翻译: Effective Go (2)

申屠鹏会

翻译 Go 语言

喔,明白了,成功也是一种苦难

霍太稳@极客邦科技

创业 身心健康 企业文化 个人成长 心理

无代码开发

Fenng

简化持久性实体的传递_Java_Craig Wickesser_InfoQ精选文章