首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SqlAlchemy 2.0 中文文档(七十三)

;因为代理现在在生成表达式时衍生了额外的状态,所以有一个对象目标版本和一个列目标版本的AssociationProxyInstance 类。...;因为代理现在在生成表达式时会衍生出额外的状态,所以AssociationProxyInstance类现在有对象目标和列目标版本。...#4423 selectin 加载不再对简单的一对多使用 JOIN 在 1.2 中添加的“selectin”加载功能引入了一种极其高效的新方法来急切加载集合,在许多情况下比“subquery”急切加载要快得多...;因为代理现在在生成表达式时会产生额外的状态,所以AssociationProxyInstance类现在有对象目标和列目标版本。...;由于代理现在在生成表达式时会产生额外的状态,AssociationProxyInstance 类现在有对象目标和列目标版本。

24410

SqlAlchemy 2.0 中文文档(七十五)

这样做的主要目的是为了使实体的处理与标识映射顺利配合,包括适应通常在连接式急加载中表示的重复实体,以及在使用连接来过滤其他列时。 这种去重依赖于行内元素的可哈希性。...#3601 ### 修复涉及用户发起的外键操作的多对一对象移动 已修复了涉及用另一个对象替换多对一引用机制的 bug。在属性操作期间,先前引用的对象位置现在使用数据库提交的外键值,而不是当前外键值。...这主要是为了确保实体的处理与标识映射一起顺利进行,包括在连接的急加载中通常表示的重复实体,以及当用于过滤附加列时使用连接时。 这种去重依赖于行中元素的可哈希性。...#3601 ### 修复涉及用户发起的外键操作的多对一对象移动问题 已修复涉及用另一个对象替换对对象的多对一引用的机制的错误。...#3601 修复涉及用户发起的外键操作的多对一对象移动 修复了涉及将对对象的多对一引用替换为另一个对象的机制的错误。在属性操作期间,先前引用的对象的位置现在使用数据库提交的外键值,而不是当前的外键值。

33110
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    SqlAlchemy 2.0 中文文档(五十)

    指定目标 这两种方法都使用列推断提供冲突的“目标”: Insert.on_conflict_do_update.index_elements 参数指定一个序列,其中包含字符串列名、Column 对象和/...这种对象的一个例子是在使用AUTOINCREMENT列参数时生成的sqlite_sequence表。...set_ – 一个字典或其他映射对象,其中键是目标表中的列名称,或者是 Column 对象或其他 ORM 映射的列,匹配目标表的列,值是表达式或文字,指定要采取的 SET 操作。...指定目标 两种方法都使用列推断冲突的“目标”: Insert.on_conflict_do_update.index_elements 参数指定包含字符串列名称、Column 对象和/或 SQL 表达式元素的序列...set_ – 一个字典或其他映射对象,其中键可以是目标表中的列名,或者是 Column 对象或其他 ORM 映射的列,与目标表匹配,以及表达式或字面值作为值,指定要执行的 SET 操作。

    38110

    SqlAlchemy 2.0 中文文档(七十七)

    对于某些查询,子查询预加载将在最内层的 SELECT 上应用 DISTINCT 在涉及到一对多关系时,子查询预加载可能会生成重复行的数量,因此当连接目标列不包含主键时,会对最内层的 SELECT 应用...表示当目标 SELECT 针对不包含完整主键的列时生效。...子查询急加载将对某些查询的最内层 SELECT 应用 DISTINCT 为了减少在涉及到多对一关系时子查询急加载可能生成的重复行数,当连接的目标是不包含主键的列时,将在最内层的 SELECT 中应用 DISTINCT...子查询急切加载将对某些查询的最内部 SELECT 应用 DISTINCT 为了减少涉及多对一关系时子查询急切加载可能生成的重复行数,当连接针对不包括主键的列时,将在最内部 SELECT 中应用 DISTINCT...关键字,例如在沿着多对一加载时。

    15110

    SqlAlchemy 2.0 中文文档(五十八)

    这将尽可能地呈现,并返回未经过滤的结果集,但不支持具有特定列渲染要求的多参数“ORM 批量 INSERT”语句。...参考:#10597 [orm] [bug] 改进了当工作单元过程将主键列的值设置为 NULL 时产生的错误消息,原因是具有对该列的依赖规则的相关对象被删除,包括不仅目标对象和列名,还包括源列,从中...参考:#10597 [orm] [bug] 改进了工作单元过程生成的错误消息,当由于相关对象对该列具有依赖规则并且被删除时,工作单元过程将主键列的值设置为 NULL 时,不仅包括目标对象和列名,...,在此情况下,如果一个或多个列产生的值是“未知的可哈希性”,通常是在使用像 func.json_build_object() 这样的 JSON 函数时没有提供类型时,会在返回的值实际上不可哈希时内部失败...这将在尽可能多的情况下呈现,并返回未过滤的结果集,但不支持具有特定列呈现要求的多参数“ORM 批量 INSERT”语句。

    16710

    SqlAlchemy 2.0 中文文档(七十四)

    #3934 ### 修复了与 select_from() 结合使用单表继承的问题 当生成 SQL 时,Query.select_from() 方法现在将遵循单表继承列鉴别器;以前,仅查询列列表中的表达式会被考虑进去...这将显著减少应用程序在使用懒加载查询加载集合和相关对象时的函数调用。此功能以前在 1.0 和 1.1 中通过使用全局 API 方法或使用baked_select策略可用,现在是此行为的唯一实现。...这将显著减少应用程序使用延迟加载查询加载集合和相关对象时的函数调用数量。...#3934 ### 修复了与 select_from() 一起使用单表继承的问题 当生成 SQL 时,Query.select_from() 方法现在会尊重单表继承列鉴别器;之前,只有查询列列表中的表达式会被考虑...#3934 修复了与select_from()一起使用单表继承的问题 Query.select_from()方法现在在生成 SQL 时尊重单表继承列鉴别器;以前,只有查询列列表中的表达式会被考虑进去。

    40710

    MySQL 5.7 新特性详解

    包括多源复制,多从线程增强,在线 GTIDs,和增强的半同步复制。 性能模式 提供更好的视角。我们增加了许多新的监控功能,以减少空间和过载,使用新的 SYS 模式显著提高易用性。...这项工作改进了 CREATE TABLE 和 ALTER TABLE ,所以你可以创建 JSON 类型的数据列,并且它扩展了 Field 类,允许对 JSON 类型数据进行 INSERT和SELECT...当排序 JSON 变量时用 ORDER BY,它将会返回 JSON 比较器 WL#8249 定义的排序规则所排序的结果。 我们已经为生成的列(WL#8170)实现了一个表达式分析器。...这样做可以让我们的排序和参考优化器有机会使用已经为生成的列定义的索引。关于这个功能的一个案例是在 JSON 文档上产生和自动使用索引。...每列的值,不像一个有规律的字段的值,没有通过用户设置而是当行创建或者更新时通过服务器使用用户定义表时定义的特殊的表达式计算。生成的列也可以被物化(被存储)或者非物化(虚拟)。

    1.1K20

    MySQL 之 JSON 支持(三)—— JSON 函数

    候选对象被包含在目标对象中,当且仅当对于候选中的每个键,在目标中存在具有相同名称的键,并且与候选键相关联的值被包含在与同名目标键相关联的值中。...,与两个参数一起使用,其中左边是 JSON 列标识符(而不是表达式),右边是列中要匹配的 JSON 路径。...AS JSON) 或 JSON_OBJECT() 强制转换为正确的类型。此外,包含 JSON 对象的目标数组本身必须使用 JSON_ARRAY 进行强制转换。...当一个嵌套路径生成记录时,任何同级嵌套路径表达式的列都设置为 NULL。...如果参数是如前所述已更新的 JSON 列值,当返回一个正值时,表示其二进制表示比更新前占用的空间少。

    79610

    搞定Mybatis面试题

    其执行原理为,使用 OGNL 的表达式,从 SQL 参数对象中计算表达式的值,根据表达式的值动态拼接 SQL ,以此来完成动态 SQL 的功能。...Mybatis 仅支持 association 关联对象和 collection 关联集合对象的延迟加载。其中,association 指的就是一对一,collection 指的就是一对多查询。...默认情况下,延迟加载的功能是关闭的。 ---- 它的原理是,使用 CGLIB 或 Javassist( 默认 ) 创建目标对象的代理对象。...当调用代理对象的延迟加载属性的 getting 方法时,进入拦截器方法。比如调用 a.getB().getName() 方法,进入拦截器的 invoke(...)...方法,发现 a.getB() 需要延迟加载时,那么就会单独发送事先保存好的查询关联 B 对象的 SQL ,把 B 查询上来,然后调用a.setB(b) 方法,于是 a 对象 b 属性就有值了,接着完成a.getB

    1.3K30

    SqlAlchemy 2.0 中文文档(七十八)

    PropComparator.of_type() 方法用于在构建 SQL 表达式时指定要使用的特定子类型,该子类型作为其目标具有 多态 映射的 relationship() 的目标。...PropComparator.of_type()方法用于在构建 SQL 表达式时指定要使用的特定子类型,该子类型作为relationship()的目标具有多态映射。...PropComparator.of_type()方法用于在构建 SQL 表达式时指定要使用的特定子类型,该表达式沿着具有多态映射作为目标的relationship()。...然而,其他用例要求该项尚未成为会话的一部分,例如,当一个查询旨在加载实例所需的某些状态时,首先会触发自动刷新并且否则会过早刷新目标对象。...然而,其他用例要求该项尚未成为会话的一部分,比如当一个查询,旨在加载实例所需的某些状态时,首先发出自动刷新,否则会过早刷新目标对象。

    15510

    SqlAlchemy 2.0 中文文档(八十)

    多对一增强 多对一关系现在在更少的情况下会触发延迟加载,包括在大多数情况下不会在替换新值时获取“旧”值。...[ticket:1544] 当存在 LIMIT/OFFSET 时,连接式预加载的行为会将主查询包装在子查询中,现在对所有预加载都是多对一连接的情况做了一个例外。...多对一增强 多对一关系现在在更少的情况下会触发惰性加载,包括在大多数情况下当新值替换旧值时不会获取“旧”值。...其他更改 当选择多列/实体时,Query 返回的“行元组”对象现在可以进行序列化,性能更高。...其他变化 当选择多列/实体时,Query返回的“行元组”对象现在也是可序列化的,并且性能更高。

    20410

    大数据开发:Hive DML操作入门

    1、Load data 在将数据加载到表中时,Hive 不执行任何转换。Load 操作是纯复制/移动操作,仅将数据文件移动到与 Hive 表对应的位置。...如果是分区表,则必须制定所有分区列的值来确定加载特定分区; filepath 可以是文件,也可以是目录; 制定 LOCAL 可以加载本地文件系统,否则默认为 HDFS; 如果使用了 OVERWRITE,...URI; 使用 LOCAL,可以将数据写入到本地文件系统的目录上; 写入文件系统的数据被序列化为由 ^A 做列分割符,换行做行分隔符的文本。...如果任何列都不是原始类型(而是 MAP、ARRAY、STRUCT、UNION),则这些列被序列化为 JSON 格式; 可以在同一查询中,INSERT OVERWRITE到目录,到本地目录和到表(或分区)...[WHERE expression] 被引用的列必须是被更新表中的列; 设置的值必须是 Hive Select 子句中支持的表达式。

    1.1K20

    SqlAlchemy 2.0 中文文档(二十四)

    在刷新/提交操作之后,上述someobject的value属性将会过期,因此在下次访问时,新生成的值将从数据库加载。 该功能还具有条件支持,可以与主键列一起使用。...参数: entity – 指示要加载的实体类型的映射类或Mapper。 ident – 代表主键的标量、元组或字典。对于复合(例如,多列)主键,应传递元组或字典。...参数: entity - 表示要加载的实体类型的映射类或 Mapper。 ident - 表示主键的标量、元组或字典。对于复合(例如多列)主键,应传递元组或字典。...将其设置为False是一种检测仅基于本地列的属性(即标量列或多对一外键)的方法,这些属性在刷新此实例时将导致 UPDATE。...relationship() 导向属性如果已经在对象上急切加载,将立即被加载,使用与最初加载时相同的急切加载策略。

    41310

    Mybatis面试问题锦集

    其执行原理为,使用OGNL从sql参数对象中计算表达式的值,根据表达式的值动态拼接sql,以此来完成动态sql的功能。 8、Mybatis是如何将sql执行结果封装为目标对象并返回的?...第二种是使用sql列的别名功能,将列别名书写为对象属性名,比如T_NAME AS NAME,对象属性名一般是name,小写,但是列名不区分大小写,Mybatis会忽略列名大小写,智能找到与之对应对象属性名...答:Mybatis仅支持association关联对象和collection关联集合对象的延迟加载,association指的就是一对一,collection指的就是一对多查询。...它的原理是,使用CGLIB创建目标对象的代理对象,当调用目标方法时,进入拦截器方法,比如调用a.getB().getName(),拦截器invoke()方法发现a.getB()是null值,那么就会单独发送事先保存好的查询关联...它与全自动的区别在哪里? 答:Hibernate属于全自动ORM映射工具,使用Hibernate查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取,所以它是全自动的。

    3.1K20

    【39期】Mybatis面试18问,你想知道的都在这里了!

    其执行原理为,使用OGNL从sql参数对象中计算表达式的值,根据表达式的值动态拼接sql,以此来完成动态sql的功能。 8、Mybatis是如何将sql执行结果封装为目标对象并返回的?...第二种是使用sql列的别名功能,将列别名书写为对象属性名,比如T_NAME AS NAME,对象属性名一般是name,小写,但是列名不区分大小写,Mybatis会忽略列名大小写,智能找到与之对应对象属性名...答:Mybatis仅支持association关联对象和collection关联集合对象的延迟加载,association指的就是一对一,collection指的就是一对多查询。...它的原理是,使用CGLIB创建目标对象的代理对象,当调用目标方法时,进入拦截器方法,比如调用a.getB().getName(),拦截器invoke()方法发现a.getB()是null值,那么就会单独发送事先保存好的查询关联...它与全自动的区别在哪里? 答:Hibernate属于全自动ORM映射工具,使用Hibernate查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取,所以它是全自动的。

    1.4K21

    SqlAlchemy 2.0 中文文档(七十二)

    因此,为了保持简单,列的选项仍然在defer()上: raiseload() - 查询选项,用于关系加载时引发异常 defer.raiseload - 查询选项,用于列表达式加载时引发异常 作为此更改的一部分...,当访问一个过期对象时,配置的急切加载器将运行,以便在对象被刷新或以其他方式取消过期时急切加载过期对象上的关系。...对象,将 JSON 字符串转换为 Python 的json.loads()结果等)。...因此,为了保持简单,列的选项仍然在defer()上: raiseload() - 查询选项,用于关系加载时引发异常 defer.raiseload - 查询选项,用于列表达式加载时引发异常 作为这一变化的一部分...因此,为了保持简单,列的选项仍然在defer()上: raiseload() - 查询选项,用于为关系加载时引发异常 defer.raiseload - 查询选项,用于为列表达式加载时引发异常

    87710

    MySQL 之 JSON 支持(一)—— JSON 数据类型

    输入列和目标列必须是同一列;诸如 UPDATE mytable SET jcol1=JSON_SET(jcol2, '$.a', 100) 之类的语句不能作为部分更新执行。...只要输入列和目标列相同,更新可以以任何组合使用对上一项中列出的任何函数的嵌套调用。 所有更改都是将现有的数组或对象值替换为新值,并且不会向父对象或数组添加任何新元素。...列时也会执行规范化,如下所示: mysql> CREATE TABLE t1 (c1 JSON); mysql> INSERT INTO t1 VALUES > ('{"x": 17...可以在 JSON 路径表达式中使用 “” 作为文档的同义词。 说明:有些实现支持 JSON 路径作用域的列引用,但 MySQL 8.0 不支持。...例如,如果名为 jdoc 的列包含 JSON 对象,该对象的成员由 id 键和非负值组成,则使用此表达式按 id 值排序: ORDER BY CAST(JSON_EXTRACT(jdoc, '$.id'

    3.2K30

    常见的Mybatis面试题详细讲解大全

    能简述一下动态sql的执行原理不? 8、Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式? 9、Mybatis能执行一对一、一对多的关联查询吗?...其执行原理为,使用OGNL从sql参数对象中计算表达式的值,根据表达式的值动态拼接sql,以此来完成动态sql的功能。 8、Mybatis是如何将sql执行结果封装为目标对象并返回的?...答:Mybatis仅支持association关联对象和collection关联集合对象的延迟加载,association指的就是一对一,collection指的就是一对多查询。...它的原理是,使用CGLIB创建目标对象的代理对象,当调用目标方法时,进入拦截器方法,比如调用a.getB().getName(),拦截器invoke()方法发现a.getB()是null值,那么就会单独发送事先保存好的查询关联...它与全自动的区别在哪里? 答:Hibernate属于全自动ORM映射工具,使用Hibernate查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取,所以它是全自动的。

    2K51

    SqlAlchemy 2.0 中文文档(十五)

    另请参阅 多对多 - “多对多”关系的参考示例。 自引用多对多关系 - 在自引用情况下使用多对多的具体细节。 配置多对多关系 - 在使用声明式时的附加选项。...immediate - 项目应该在父项加载时加载,使用一个单独的 SELECT 语句,或者对于简单的多对一引用,使用标识映射获取。...order_by – 指示加载这些项时应应用的排序。relationship.order_by预期引用目标类映射到的一个Column对象之一,或者绑定到引用列的目标类的属性本身。...使用 raiseload 防止延迟加载列 配置映射上的列延迟 使用deferred()为命令式映射器、映射的 SQL 表达式 使用undefer()“急切地”加载延迟列...以组加载延迟列 使用undefer_group()按组取消延迟加载 使用通配符取消延迟加载 配置映射器级别的“raiseload”行为 将任意 SQL 表达式加载到对象上 使用

    26110
    领券