gpt4 book ai didi

java - ActiveJDBC 和带引号的标识符

转载 作者:太空宇宙 更新时间:2023-11-04 13:10:28 24 4
gpt4 key购买 nike

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

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

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

最佳答案

有一种方法可以用后面的标记来定义表名称:

@Table("`人员`")
公共(public)类 Person(){}

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

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

关于java - ActiveJDBC 和带引号的标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34020521/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com