加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

为什么Doctrine2不会自动引用所有SQL标识符?

发布时间:2020-12-12 06:33:28 所属栏目:MsSql教程 来源:网络整理
导读:学说手册说: Doctrine does not quote identifiers automatically because this leads to more problems,than it would solve. 引用一切究竟是什么问题? 解决方法 该引用来自 Basic Mapping部分的旧版本文档.最新文档不再包含此文本,但仍然如此. 最新文档的
学说手册说:

Doctrine does not quote identifiers automatically because this leads
to more problems,than it would solve.

引用一切究竟是什么问题?

解决方法

该引用来自 Basic Mapping部分的旧版本文档.最新文档不再包含此文本,但仍然如此.

最新文档的Limitations and Known Issues部分对此有所了解:

For compatibility reasons between all the supported vendors and edge case problems Doctrine 2 does NOT do automatic identifier quoting.

由于不同SQL供应商使用不同的引用策略,以及ORM生成SQL的方式,因此很难找到适用于所有情况的解决方案.而且它更难维护.这可能不是不可能的,但是Doctrine团队认为不值得花时间,并且(或许更重要的是)代码复杂性.

有关SQL生成复杂程度的提示,请浏览git repository中的代码.

通常的最佳做法是仅对标识符使用字母数字字符(和下划线),并且不使用保留关键字.如果您遵循这些,您将不需要标识符引用.

如果您确实需要,因为您处理遗留数据库,Doctrine提供了两种解决方案:

>手动引用标识符,请参阅Basic Mapping部分.
>创建遵循前面提到的最佳实践的数据库视图.

PS:对于那些不知道的人:“标识符”不是指主键,而是指表,列,索引等的名称.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读