gpt4 book ai didi

orm - 有没有办法在处理 ORM 对象时将 top 属性全局应用于 cfdump/writeDump?

转载 作者:行者123 更新时间:2023-12-04 21:07:16 24 4
gpt4 key购买 nike

处理嵌套的 ORM 关系时,使用 cfdumpwriteDump可以迅速导致 java.lang.OutOfMemoryError错误是因为 CF 尝试解决嵌套对象中的关系并转储太多对象。

这可以通过 top 避免属性,例如:<cfdump var=#SomeObject# top=3 />
记住一直写这个很痛苦 - 有没有办法配置 CF 在处理 ORM 对象时不会下降太多级别?

最佳答案

似乎没有任何管理员设置。 ( issue raised )

一个不完美的解决方案是通过重命名 {cfusion}/wwwroot/WEB-INF/cftags/dump.cfm 来为 cfdump 标签创建一个包装器。到(例如)origdump.cfm然后创建一个新的 dump.cfm文件包含:

<cfif isObject(attributes.var) AND NOT StructKeyExists(attributes,'top')>
<cfset attributes.top = 3 />
</cfif>

<cforigdump attributecollection=#attributes# />

<cfexit method="exitTag" />

幸运的是,writeDump 函数会调用这个包装器(所以它适用于标签和函数)。

不幸的是,包装器不是递归调用的——如果 ORM 对象在结构体或数组中,那么原始问题仍然表现出来——有可能预扫描复杂变量以确定内部是否存在关系并设置适当的最高值,但这只能实现有限的解决方案(即它会影响相邻的结构/数组)。

关于orm - 有没有办法在处理 ORM 对象时将 top 属性全局应用于 cfdump/writeDump?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18055475/

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