java - 卡宴是满足我要求的好选择吗?

标签 java hibernate orm apache-cayenne

<分区>

我们正在为我的项目评估 ORM 解决方案,该项目在业务层和数据层 (JDBC) 之间具有紧密耦合。我开始用 Cayenne 做一个 PoC。我的要求是这样的 a) 已经存在数据库模式 b) 模式非常精细。 IE。实时 java 对象仅通过组合表派生。 c)目前我只想执行读取操作(通过输入条件精确地过滤和排序列表)

到目前为止,我对 Cayenne 的观察是 1)表和对象紧耦合。 Modeler 不允许在没有关联表的情况下创建 java 对象。 2) 我找不到简单的方法将命名查询的输出映射到 java 对象,以便我以应用程序需要的方式获取列表。 3) 我也不确定表达式是否适用于命名查询。

我想知道您对我的要求的最佳选择的意见?

提前谢谢你。

最佳答案

如果我必须选择 ORM 工具或 JPA 提供程序,我不会选择 Cayenne,因为它似乎没有被广泛使用,所以它背后的社区不是很大,这是一个问题。因此无需讨论技术点,像 Cayenne 2.0 这样的东西是侵入性的,你必须实现一个接口(interface)或扩展一个父类(super class)(Cayenne 3.0 有 POJO 支持,但仍处于测试阶段,已经超过 2 年了......)。不,真的,如果您需要 ORM 工具,我看不出有什么理由不选择 Hibernate,事实上的标准。

但是……

鉴于您的要求,ORM 实际上可能不是最佳选择,主要是因为 b) 所以我会考虑使用 iBatis (这不是一个 O/R 映射器,它是一个数据映射器)。

关于java - 卡宴是满足我要求的好选择吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2334146/

相关文章:

java - JPA事务回滚重试和恢复: merging entity with auto-incremented @Version

java - Hibernate ReturningWork<Long> 接口(interface)的用途是什么?

java - 我们可以调用类构造函数吗?

java - 带有新线程的新 JFrame

java - 如何使用 ScheduledExecutorService 通过多个服务定期运行作业

java - Selenium ChromeDriver 无法在任何 Windows 操作系统上启动

java - Hibernate org.apache.xerces.parsers.SAXParser 未实现 XMLReader 异常

hibernate - JPA 脏检查

php - 找不到推进配置文件

apache-flex - Adobe Air/Flex 的最佳 ORM