写点什么

简化持久性实体的传递

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

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

关注

评论

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

云原生专栏丨基于K8s集群网络策略的应用访问控制技术

inBuilder低代码平台

云原生 #k8s

《自动机理论、语言和计算导论》阅读笔记:p428-p525

codists

编译原理

软件测试学习笔记丨测试用例基础概念

测试人

软件测试

ETL如何执行Java脚本

RestCloud

Java 脚本 ETL 数据集成工具

Web3 游戏周报(4.28 - 5.04)

Footprint Analytics

gamefi web3

Partisia Blockchain 生态zk跨链DEX上线,加密资产将无缝转移

BlockChain先知

【深入浅出Spring原理及实战】「开发实战系列」Spring-Cache扩展自定义(注解失效时间+主动刷新缓存)

洛神灬殇

spring Spring Cache 缓存控制 缓存能力

Partisia Blockchain 生态首个zk跨链DEX现已上线

石头财经

成为一名架构师,你必须具有“战略意图”

快乐非自愿限量之名

架构 软件开发

品高虚拟化后端存储的发展演进

品高云计算

一键自动化博客发布工具,用过的人都说好(segmentfault篇)

程序那些事

人工智能 工具 程序那些事 openai 自动化工具

Flink物理分区概念与分类详解

木南曌

flink 实时计算

江苏气象AI算法挑战赛亚军比赛攻略_DontMind队

阿里云天池

阿里云 AI 算法

docker攻略,希望能帮助到大家对docker的理解

阿里云天池

Docker 镜像

AI 数据观 | TapData Cloud + MongoDB Atlas:大模型与 RAG 技术有机结合,落地实时工单处理智能化解决方案

tapdata

Tapdata Cloud 工单处理 大型语言模型LLM 检索增强技术RAG MongoDB Atlas

【深入浅出Spring原理及实战】「开发实战系列」重新回顾一下异常重试框架Spring Retry的功能指南和实战

洛神灬殇

spring Spring retry 重试机制 spring-retry

【参赛总结】第二届云原生编程挑战赛-冷热读写场景的RocketMQ存储系统设计 - Nico

阿里云天池

RocketMQ 云原生

直播预告|第一批 Vision Pro 开发者开始弃坑了吗? 本周六一起听听三位 XR 开发者的真实想法!

声网

Premiere Pro 2024 for Mac:视频剪辑与制作软件

iMac小白

Premiere Pro下载 Premiere Pro破解版 Premiere Pro 2024

价值创造未来:财务规划与资源管理

智达方通

企业管理 资源管理 全面预算

苹果挖走大量谷歌人才,建立神秘人工智能实验室;李飞飞创业成立「空间智能」公司丨 RTE 开发者日报 Vol.197

声网

SOL链DApp智能合约代币质押挖矿分红系统开发

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

企业选择MES系统是选择现成的OR定制开发?

万界星空科技

生产管理系统 mes 万界星空科技 定制开发MES

【深入浅出Spring原理及实战】「工作实战专题」叫你如何使用另类操作去实现Spring容器注入Bean对象 (1)

洛神灬殇

Java spring 框架 Bean处理

XMind Pro 2024 for Mac:强大的思维导图软件

iMac小白

技术分享 | 弹窗开发中,如何使用 Hook 封装 el-dialog?

LigaAI

前端 弹窗 对话框 代码简洁

首届云原生编程挑战赛总决赛亚军比赛攻略(ONE PIECE团队)

阿里云天池

Serverless 云原生

MES生产管理系统:私有云、公有云与本地化部署的比较分析

万界星空科技

服务器 云服务 私有云 mes 万界星空科技

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