【发布时间】:2015-12-01 12:31:39
【问题描述】:
我正在尝试将 ActiveJDBC 与旧数据库一起使用,其中表和列的名称中通常包含连字符。这适用于SELECTs,因为我可以引用标识符(例如Model.where("\"stupid-name\" = ?", 1))。 INSERT/UPDATE 会出现问题,因为DefaultDialect 生成的 SQL 没有引用标识符。
我正在考虑为这种数据库类型(它是 Progress OpenEdge BTW)实现一个自定义方言,但我首先有几个问题:
- 在上游 ActiveJDBC 中是否欢迎为此类 DB(闭源,需要许可证 AFAICT)贡献方言?
- 如果没有,我可以使用外部维护的方言吗?
- 更改为使用带引号的标识符对其他数据库类型也有用吗?
【问题讨论】:
-
对带有“特殊”字符的名称使用双引号是 SQL 中的定义方式。因此,如果“DefaultDialect”不起作用,那对我来说似乎是一个错误,而不是缺少的功能。
标签: java activejdbc javalite