typeorm oracle 表大小写问题
  8KhYbgszLLmZ 2023年11月24日 77 0

oracle 对于表名的定义包含了是否包含双引号的问题,但是默认typeorm 创建的是包含了双引号的,造成数据查询会有问题(typeorm 自身没有问题,但是外部查询会有问题)

解决方法

  • 自定义命名策略
    参考
class OracleNameStrategy extends typeorm.DefaultNamingStrategy {
    tableName(targetName,userSpecifiedName) {
        if(userSpecifiedName) {
            return userSpecifiedName.toUpperCase();
        } 
        return targetName.toUpperCase();
    }
}
使用
在datasource 中定义
 
const dataSource = new typeorm.DataSource({
    type: "oracle",
    username: "xxxxxx",
    password: "xxxxxx",
    connectString:"xxxxxx/xxxxx",
    synchronize: true,
    namingStrategy: new OracleNameStrategy(),
    entities: [require("./entity")],
})

参考资料

https://docs.oracle.com/en/database/oracle/oracle-database/12.2/sqlrf/Database-Object-Names-and-Qualifiers.html#GUID-75337742-67FD-4EC0-985F-741C93D918DA
https://stackoverflow.com/questions/59164738/createquerybuilder-does-not-return-data-with-oracle-because-typeorm-generates-sq

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月24日 0

暂无评论

推荐阅读