最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

简化持久性实体的传递

  • 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:541877
用户头像

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

关注

评论

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

「编程概念」融合理解函数式和面向对象

顿晓

面向对象 4月日更 函数式 融合

什么是你上大学才知道的事情?

🌍

4月日更

区块链给普通人带来的机会!

CECBC

区块链

构建基于Spring Cloud向Service Mesh框架迁移的解决方案及思路

xcbeyond

架构 云原生 Service Mesh 解决方案 引航计划

Wireshark数据包分析学习笔记Day28

穿过生命散发芬芳

Wireshark 数据包分析 4月日更

知乎高赞:为什么同样是分布式架构的Kafka需要Leader而Redis不需要

中间件兴趣圈

分布式 raft 一致性 数据分片

7.1 Go语言从入门到精通:Cobra介绍

xcbeyond

cobra Go 语言 4月日更

强化区块链应用 破解知识产权运营难题

CECBC

区块链

传统金融体系vs新金融体系,区块链改变了什么?

CECBC

金融

容器&服务: ClickHouse与k8s架构

程序员架构进阶

Kubernetes Prometheus Clickhouse 28天写作 4月日更

基于树莓派和OpenVINO的边缘计算

IT蜗壳-Tango

IT蜗壳教学 4月日更

Angular,AngularJS 和 react

HoneyMoose

场景化面试:能聊聊你对充血模型和贫血模型的理解吗?

面试官问

领域驱动设计 DDD 充血模型 贫血模型

众盟科技:直播浪潮下,医美行业的私域营销之变

脑极体

函数

奈奈奈奈

2021 优质前端资源精选 —— 持续更新,欢迎共建

清秋

大前端 教程 资源 社区 4月日更

趁早

小天同学

个人感悟 成功 4月日更 恋爱 趁早

如何在 GitHub 上选择合适的开源工具和项目

耳东@Erdong

GitHub 4月日更

并发的HashMap为什么会引起死循环?

Java小咖秀

容器 hashmap 并发

从金融到物联网 区块链的落地应用将如何改变世界?

CECBC

区块链

如何避免成为一个油腻的中年猥琐男?

石云升

读书笔记 中年 28天写作 4月日更

霸榜GitHub!银四匠心之作:拼多多/蚂蚁/百度面经分享

Java 编程 程序员 架构 面试

starforce源码解读二:游戏入口

风翱

Unity 源码解读 4月日更

我用Rocket-API实现了开放平台

棒锤🐮

世界五百强第一的沃尔玛在用区块链做什么

CECBC

区块链

Edge 修改使用的默认搜索引擎

HoneyMoose

我叫小M,立志建立MySQL帝国。

yes

MySQL

maven中心仓库OSSRH使用简介

程序那些事

Java maven 程序那些事

Rust从0到1-结构体-方法

rust 方法 struct 结构体 method

来学Python啦,用Python详细讲解温度转换器

Bob

Python Python 游戏编程 4月日更

优秀程序员必备技能之如何高效阅读源码

中间件兴趣圈

方法论 源码解读

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