Apache Cayenne 是一个强大而易于掌握的 Java ORM 框架。它是开源且完全免费的。Cayenne 提供了 Java 对象到关系型数据库的持久化映射管理,单方法调用查询和更新(包括细粒度的更新所有被修改的对象),无缝隙的把多种数据库集成到单一虚拟数据源中。Cayenne 由 CayenneModeler 分配——完整的 GUI 映射工具。Cayenne 已被成功部署在高负载的生产环境中。
在吸取了广大用户的建议的基础上发布了 1.2 版本。这个版本中最重要的新特性是“远程对象持久化(Remote Object Persistence)”,就是把 Cayenne 转变成一个独立的数据服务器,以便远程应用能访问。目前,仅仅用于 Java 客户端程序(常常用于 Swing 或 SWT“富客户端”应用),但开发者计划将客户端用其他语言来实现。ORM-到-WS 把熟悉的 ORM 世界提供给远程客户端。即关系的延迟粒度、本地缓存、数据请求、单方法调用多对象的提交、等等。也就是服务器和客户端层共享同样的抽象对象模型和相同的 Cayenne 持久 API。
Cayenne 最早由几名程序员在 2001 年的亚特兰大构思。这个项目目的在于构建一个开源的 ORM 框架(当时还没有这样的产品),最初的设计灵感源于 NeXT/Apple 企业对象架构(Enterprise Objects Framework,EOF)。在 2002 年的秋天,Cayenne 1.0 alpha 版成功地在 NHL.com 网站(全国曲棍球联合会)上运用。第一个官方稳定版在 2003 年 9 月发布。从那以后,Cayenne 就在全球大大小小的组织(译注:这些机构、组织的网站)上部署。2006 年春,Cayenne 被接纳为 Apache 软件基金会孵化器项目,并立志成为 Apache 项目(译注:也许是指和 iBATIS 一样)。
在了解了 Cayenne 的前世今生后,来听听用户的声音。
“我们使用 Cayenne 已经有 6 个月了,基于这个框架构建了多个 web 应用,发现它是一种生产效率很高的工具。基于 Cayenne 建模和开发是非常神奇的事情。你可以创建新表或更新已存在的表,接着点击很少的按钮你的数据库就构建好了,所有类也生成了。在进行程序快速开发时,这一分钟的持久化变动是非常有效率的。下面我把 Cayenne 1.2 和 Hibernate 3.0 做一比较:Cayenne 是更有生产力的工具集,主要是由于它的数据库生成和代码生成特性上,用户无需书写和维护 XML 映射文件。而 Hibernate 有着更加强大的查询语言。Cayenne 的设计更加适合 web 应用程序。对于 ThreadLocal 和 HttpSession 的支持,事务模式以及连接池都可以直接拿来就用。如果是 Hibernate 的话,用户必须自己找这些插件或者利用 Spring 对 Hibernate 的支持。Cayenne 的 DataObjects 一直都处于连接状态,无需遭受 Hibernate 的“lazy initialization exception”之苦。Hibernate 更好的支持了 PK 和 FK 设计的关联数据表。如果用户遵循设计模式,在 Cayenne 中也可以直接用 PK 代理。”
—— Malcolm Edgar
“我想最好的特性是无需关闭数据库连接或会话。如果我使用 Hibernate,我必须手工关闭会话(我没用 springframework),这样太繁琐了,而且容易误操作。换成 Cayenne 的话,我无需关心数据库连接或 JDBC 异常。”
—— lyo Yashnoo
“我用 Cayenne 差不多一年半了,我想说的是真的太好了!建模工具很强大并且架构也非常成熟、高效!”
—— Pedro Costa
在吸取了广大用户的建议的基础上发布了 1.2 版本。这个版本中最重要的新特性是“远程对象持久化(Remote Object Persistence)”,就是把 Cayenne 转变成一个独立的数据服务器,以便远程应用能访问。目前,仅仅用于 Java 客户端程序(常常用于 Swing 或 SWT“富客户端”应用),但开发者计划将客户端用其他语言来实现。ORM-到-WS 把熟悉的 ORM 世界提供给远程客户端。即关系的延迟粒度、本地缓存、数据请求、单方法调用多对象的提交、等等。也就是服务器和客户端层共享同样的抽象对象模型和相同的 Cayenne 持久 API。
Cayenne 最早由几名程序员在 2001 年的亚特兰大构思。这个项目目的在于构建一个开源的 ORM 框架(当时还没有这样的产品),最初的设计灵感源于 NeXT/Apple 企业对象架构(Enterprise Objects Framework,EOF)。在 2002 年的秋天,Cayenne 1.0 alpha 版成功地在 NHL.com 网站(全国曲棍球联合会)上运用。第一个官方稳定版在 2003 年 9 月发布。从那以后,Cayenne 就在全球大大小小的组织(译注:这些机构、组织的网站)上部署。2006 年春,Cayenne 被接纳为 Apache 软件基金会孵化器项目,并立志成为 Apache 项目(译注:也许是指和 iBATIS 一样)。
在了解了 Cayenne 的前世今生后,来听听用户的声音。
“我们使用 Cayenne 已经有 6 个月了,基于这个框架构建了多个 web 应用,发现它是一种生产效率很高的工具。基于 Cayenne 建模和开发是非常神奇的事情。你可以创建新表或更新已存在的表,接着点击很少的按钮你的数据库就构建好了,所有类也生成了。在进行程序快速开发时,这一分钟的持久化变动是非常有效率的。下面我把 Cayenne 1.2 和 Hibernate 3.0 做一比较:Cayenne 是更有生产力的工具集,主要是由于它的数据库生成和代码生成特性上,用户无需书写和维护 XML 映射文件。而 Hibernate 有着更加强大的查询语言。Cayenne 的设计更加适合 web 应用程序。对于 ThreadLocal 和 HttpSession 的支持,事务模式以及连接池都可以直接拿来就用。如果是 Hibernate 的话,用户必须自己找这些插件或者利用 Spring 对 Hibernate 的支持。Cayenne 的 DataObjects 一直都处于连接状态,无需遭受 Hibernate 的“lazy initialization exception”之苦。Hibernate 更好的支持了 PK 和 FK 设计的关联数据表。如果用户遵循设计模式,在 Cayenne 中也可以直接用 PK 代理。”
—— Malcolm Edgar
“我想最好的特性是无需关闭数据库连接或会话。如果我使用 Hibernate,我必须手工关闭会话(我没用 springframework),这样太繁琐了,而且容易误操作。换成 Cayenne 的话,我无需关心数据库连接或 JDBC 异常。”
—— lyo Yashnoo
“我用 Cayenne 差不多一年半了,我想说的是真的太好了!建模工具很强大并且架构也非常成熟、高效!”
—— Pedro Costa