1

我正在尝试将 ActiveJDBC 与旧数据库一起使用,其中表和列的名称中通常包含连字符。这适用于SELECTs ,因为我可以引用标识符(例如Model.where("\"stupid-name\" = ?", 1))。INSERT/UPDATE 出现问题,因为生成的 SQLDefaultDialect没有引用标识符。

我正在考虑为这种数据库类型(它是 Progress OpenEdge BTW)实现自定义方言,但我首先有几个问题:

  1. 在上游 ActiveJDBC 中是否会欢迎为此类数据库(封闭源代码,需要许可证 AFAICT)贡献方言?
  2. 如果没有,我可以使用外部维护的方言吗?
  3. 使用带引号的标识符的更改对其他数据库类型也有用吗?
4

1 回答 1

0

有一种方法可以用 back tic 定义表名:

@Table("`PEOPLE`") public class Person(){}

它已经过测试并可以与多个数据库一起使用。列的名称来自数据库,因此它们用于生成返回给数据库的查询,因为 ActiveJDBC 是一个传递框架:http: //javalite.io/pass_through_framework

在框架中进行更改以强制使用特定方言应该很容易,但我们更喜欢开源数据库。如果您的源代码是封闭的,那么您将保持该方言。

于 2016-01-07T21:29:15.270 回答