【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

Apache Cayenne 3.0 支持远程对象持久化和 ORM 建模工具了

  • 2010-10-12
  • 本文字数:1822 字

    阅读完需:约 6 分钟

Apache Cayenne 是一个开源的 Java 框架,主要用来进行对象关系映射和持久化。Cayenne 的新版本支持远程对象持久化和 ORM 建模工具。该框架早在五月份就发布了 3.0 版本。使用 Cayenne 的远程对象持久化特性,Java 对象可以通过 Web Service 持久化到客户端。此外,Cayenne 还支持数据库逆向工程和生成,以及基于 Velocity 的类生成引擎。

InfoQ 有幸联系到了 Cayenne 的副总裁 Andrus Adamchik 和项目管理委员会成员 Aristedes Maniatis,就新版本的功能和框架以后的路线图对他们进行了采访。

InfoQ:Apache 已经有 OpenJPA 项目了,为何还要开发另一个 ORM 框架?

Cayenne 实际上比 OpenJPA 更早一些。Cayenne 在 2002 年 7 月就发布了第一个版本,在 2006 年移到了 Apache 中。Apache 的一些项目往往是重叠的、有着类似的目标,不管怎样,最终用户的选择变多了。每个 ORM 都有不同的侧重点,并为类似的问题提供不同的解决方案。借助有效的选择,我们的功能才日渐丰富起来。

InfoQ:Cayenne 支持 JPA 2.0 规范么?

不支持。我们当初做了很多工作才实现了 JPA 规范的第一个版本,但 2008 年我们决定不这么做了。实现规范不仅费工,还约束了 Cayenne 的手脚,不能实现更具创新性的方法。用户非常支持我们,我们也相信开发人员选择 Cayenne 是因为它简洁的 API 和它提供的附加功能。这些内容都不是严格遵循标准的。一直以来,Cayenne 都支持几乎所有的 JPA 概念,包括能够执行 EJBQL。

InfoQ:Cayenne 框架提供超出 JPA 规范定义的功能么?

提供。Cayenne 提供了很多创新型的功能,比如说(1)ROP(远程对象持久化),它允许远程 Java 应用访问 Cayenne Web Service,而不是直接访问数据库。这能实现多个应用层之间业务逻辑的分离,每一层都使用相同的持久化 API;(2)通用的对象映射,可以在运行时动态实例化映射关系,而不是在编译时进行;(3)嵌套的 ObjectContexts。Cayenne 还包含一个建模应用,这个应用能简化数据库和 Java 层次结构的可视化,而且一直与框架的最新版本保持同步。

InfoQ:Cayenne 框架支持哪种监控方式,以方便开发人员和操作人员查看持久化和缓存的详细信息?

Cayenne 支持类似于 JPA 的回调 / 监听器机制,还有大量内置的日志。现在已经实现了监控底层堆栈的 JMX 扩展原型,这些 JMX 扩展将纳入即将发布的 3.1 版本。此外,由于 Cayenne 查询的缓存是可插拔的,用户可以利用自己缓存提供者的事件机制去实现缓存的 JMX 监控,而不必依赖于 Cayenne。有些项目实际上已经这样去做了。

InfoQ:依赖注入(DI)容器将是后续版本的一个新特性,能否谈谈这一新特性呢?

Cayenne 的 DI 容器规模小(大约是 35K)、无 XML、易用、而且没有外部依赖(甚至不依赖于 Cayenne)。它的目标是装载、管理 Cayenne 的运行时,但在其他方面都尽量不作为。这就意味着它不会影响应用使用 Spring、Guice 等。它只会对 Cayenne 进行处理,并为用户提供扩展点,以便自定义 Cayenne 的行为。 至于实现,Cayenne 的 DI 容器受到了 Google Guice 的影响。依赖关系通过构造函数或属性注解进行配置。Cayenne 的 DI 容器支持大部分最常见的 DI 特性——绑定类、实例或实例提供者,绑定指定的 Map 和 List,启动时将多个模块合并到一个容器中,绑定作用域,平滑绑定 API,还有懒实例化。与 Guice 不同的是,我们的 DI 有作用域生命周期的概念,这个概念对 Cayenne 这样的框架来说非常重要。DI 管理的对象可以对自身的方法进行注解,以接受作用域事件,最常见的用法就是在作用域结束时释放资源。用户可以毫不费力地创建出自己的作用域和自定义事件(比如 Web 请求的作用域)。对 DI 很小的 jar 包来说,这些功能特性已经很多了。DI 现在缺少的重要功能只有动态代理和拦截器了。以后我们可能会添加进去。

InfoQ:在新特性和增强方面,Apache Cayenne 项目未来的路线图是怎样的?

最近讨论和进行的工作包括:全新的、支持泛型的查询 API,让 JPA 风格的 EJBQLQuery 和 Cayenne 传统的 SelectQuery 保持一致;在运行时能够将多个映射工程合并为一个,以提高模块化程度;继续处理不同数据库的特性;利用 DI 功能重构核心服务,以便更容易地进行扩展(这也包括上面提到的 JMX 扩展);增强 Cayenne 建模工具的功能和易用性。 但是和其他开源项目一样,开发内容都是由用户需求驱动的,而在什么情况下能取得最富有成效的进展也取决于既定的开发人员资源。

查看英文原文: Apache Cayenne 3.0 Supports Remote Object Persistence and ORM Modeling Tools

2010-10-12 07:231782
用户头像

发布了 151 篇内容, 共 59.9 次阅读, 收获喜欢 18 次。

关注

评论

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

火山引擎DataLeap的Catalog系统搜索实践 (二):整体架构

字节跳动数据平台

元数据 catalog DataLeap 文档检索

英特尔持续耕耘锐炫显卡:累计21次驱动更新,支持XeSS游戏达50+

E科讯

创建编辑音频Audition 2022(AU2022)中文破解安装

魔仙苹果mac堡

AU2022破解安装教程 Audition 2022下载 Audition 2022中文版 Adobe AU

支持神经滤镜Photoshop 2023 (ps 2023)Mac v24.5/24.6b中文激活

真大的脸盆

Mac Mac 软件 ps神经滤镜 photoshop神经滤镜

OpenMLDB v0.8 新功能:离线引擎数据源支持 Amazon S3

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

RustChinaConf 2023官网上线,精彩议题早知道

Mike Tang

速来!TDengine 六周年线上生日趴,“送”周边大礼包啦

爱倒腾的程序员

时序数据库 ​TDengine taosdata

开源赋能 普惠未来|中软国际寄语2023开放原子全球开源峰会

开放原子开源基金会

开源 开放原子开源基金会 开放原子全球开源峰会 开放原子

2天时间3个面试,百度进了3面!

王中阳Go

golang 职场 面经 求职面试 提高效率

开源赋能 普惠未来|ZTDBP诚邀您参与2023开放原子全球开源峰会

开放原子开源基金会

开源 开放原子全球开源峰会 开放原子

海量数据运维要给力,GaussDB(for Cassandra)来助力

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 6 月 PK 榜

从0到1搭建自己的脚手架(java后端) | 京东云技术团队

京东科技开发者

Java 后端 脚手架 Java脚手架 企业号 6 月 PK 榜

ShareSDK iOS端合规指南

MobTech袤博科技

M2M场景之客户端凭证模式|OIDC & OAuth2.0 认证协议最佳实践系列 【4】

Authing

OAuth 2.0 Oauth OIDC

Desktop Goose for Mac(抖音桌面宠物鹅) v0.22激活版

魔仙苹果mac堡

mac软件下载 抖音桌面宠物鹅 桌面宠物软件推荐 Desktop Goose mac破解版

设计模式详解之策略模式

阿里技术

设计模式 策略模式

六一新玩法!AI涂鸦秒变精美艺术画

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 6 月 PK 榜

百度商业AI技术创新大赛火热进行中,携手专家大咖一起创新为更好!

百度Geek说

人工智能 AIGC 企业号 5 月 PK 榜

抖音超火的文本生成图像的软件AI Photo for mac直装版

魔仙苹果mac堡

AI Photo下载 AI Photo破解版 文本到图像生成器 超火的抖音软件推荐

Flink CEP 在抖音电商的业务实践|电商行业实践专栏上线

Apache Flink

大数据 flink 实时计算

ChunJun FTP Connector 功能扩展解读

袋鼠云数栈

开源 企业号 6 月 PK 榜

华秋硬创 | 全国科技工作者日,致敬每一位科技创新者!

华秋电子

XMind2023思维导图软件 完美永久激活版 支持M1/M2

魔仙苹果mac堡

XMind下载 XMind思维导图 XMind2023新功能 XMind永久激活版

【mac/win】navicat安装破解教程 Navicat 16 中文下载

魔仙苹果mac堡

Navicat Premium破解版 Navicat Premium16 navicat数据库 好用的数据库软件

云原生数据库厂商拓数派加入龙蜥社区,打造多样化的数据底座

OpenAnolis小助手

开源 操作系统 龙蜥社区 CLA 拓数派

软件测试/测试开发丨学习笔记之Allure2测试报告

测试人

程序员 软件测试 自动化测试 测试开发 Allure

开源赋能 普惠未来|TKEStack诚邀您参与2023开放原子全球开源峰会

开放原子开源基金会

开源 开放原子开源基金会 开放原子全球开源峰会

Tomcat 安装与启动

Andy

UniFi USW-Flex 室内-室外 POE 交换机

HoneyMoose

玩转服务器之数据传输篇:如何快速搭建FTP文件共享服务器

京东科技开发者

数据传输 云服务器 ftp服务 企业号 6 月 PK 榜

龙蜥白皮书精选:开源 RISC-V 技术支持软硬件全栈平台

OpenAnolis小助手

开源 操作系统 risc-v 龙蜥社区 龙蜥sig

Apache Cayenne 3.0支持远程对象持久化和ORM建模工具了_Java_Srini Penchikala_InfoQ精选文章