【发布时间】:2012-02-23 09:29:37
【问题描述】:
目前我正在开发一个使用 Oracle 作为数据库的 webapp。我已经被告知我的 webapp 也必须在 Sybase ASE 上运行。我的 Oracle 数据库使用序列来生成 ID,并且我映射了我的域类以使用这些序列。据我所知,Sybase ASE 没有序列,只有身份。这是我的问题。如何处理代码/配置以使用 Oracle 和 Sybase。每个域的 ID 的一些“条件映射”都可以。
我只是不想每次为已映射的其他数据库构建 webapp 时都在映射中注释/取消注释行。 有人知道该怎么做吗?
还有另一个危险:Oracle 和 Sybase 之间的另一个差异会影响映射(我不使用 dbCreate = "create" 生成数据库结构)。在这一点上,我什么都看不到。 有什么经验吗?
编辑: 事实证明,不可能为两个数据库制作一个映射。我的 Oracle 结构在列名和表名中使用引号。 Sybase ASE 中不允许使用引号。在某些特定平台上构建 webapp 时,我的(不是很好也很漂亮)解决方案正在更改(评论/取消评论)映射。
顺便说一句,我是 Grails 的忠实粉丝,而这种映射功能似乎是一个缺点。如果我使用“纯”Hibernate,我将在 xml 文件中有两个映射,我会根据底层数据库更改它们。但是 Grails 并没有给我提供两个映射的可能性。
【问题讨论】:
标签: grails grails-orm grails-domain-class