我正在尝试将ActiveJDBC与遗留数据库一起使用,其中表和列通常在名称中包含连字符。这适用于SELECT
,因为我可以引用标识符(例如Model.where("\"stupid-name\" = ?", 1)
)。 INSERT / UPDATE出现问题,因为DefaultDialect
生成的SQL不引用标识符。
我正在考虑为这种数据库类型实现自定义方言(它是Progress OpenEdge BTW),但我先问了几个问题:
答案 0 :(得分:0)
有一种方法可以使用back tics定义表名:
@Table("`PEOPLE`")
public class Person(){}
已经过测试并使用多个数据库。列的名称来自数据库,因此它们用于生成回DB的查询,因为ActiveJDBC是一个传递框架:http://javalite.io/pass_through_framework。
在框架中进行更改以强制使用特定方言应该很容易,但我们更喜欢开源数据库。如果你是一个封闭的来源,那么你将维持那种方言。