ActiveJDBC和引用的标识符

时间:2015-12-01 12:31:39

标签: java activejdbc javalite

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

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

  1. 欢迎上游ActiveJDBC对这种数据库(闭源,需要许可证AFAICT)的方言作出贡献吗?
  2. 如果没有,我可以使用外部维护的方言吗?
  3. 使用带引号的标识符的更改是否也适用于其他数据库类型?

1 个答案:

答案 0 :(得分:0)

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

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

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

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