我们可以为ORM使用用户定义的(非标量)SQL类型吗?

时间:2011-04-27 08:38:27

标签: sql oracle orm

我想知道是否可以使用SQL.2003对象类型(也就是STRUCT,又称非标量类型)来执行ORM。

这背后的想法是通过直接从数据库中检索完整对象来避免"n+1 selects" problem。急切的“FetchMode.JOIN”,但数据库中的

是否有任何支持SQL对象类型的Java或.Net的ORM框架?

至少JDBC有getObject method,我也找到了user-defined types in ADO.Net

的例子

作为Oracle开发人员,我可能会偏向于以数据库为中心的方法,而且之前我也没有使用过ORM。但Oracle使用Object Views功能,可以从多个关系表中组合对象。我敢打赌,这些可能比将所有这些单个记录从数据库中拉出来更快,更不用说发出n + 1个选择。

1 个答案:

答案 0 :(得分:1)

我是jOOQ的开发者,我正在努力使jOOQ完全符合您的需求。 jOOQ目前支持以下任何Oracle功能:

  • 所有类型的SQL构造,包括嵌套选择,别名,联合操作等
  • 存储过程和功能
  • VARRAY类型(映射到Java数组)
  • UDT类型(映射到Java对象)
  • 其组合

对于高级Oracle概念,例如

,将在不久的将来添加更多支持
  • TABLE类型
  • CURSOR,REF CURSOR类型
  • 其他收藏类型

目前,您所描述的方式不支持对象视图,但我会明确将它们放在路线图上。

详情请见http://www.jooq.org