问题标签 [circular-reference]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - POJO 与其他 POJO 引用
我正在开发一个 API 来访问存储在系统中的数据。该系统包含与这些约会相关的人员、约会和程序等内容。我的应用程序将严格只读。
我正在使用带有 RowMapper 的 Spring 来构建诸如“ Person
”、“ Appointment
”和“ Procedure
”之类的对象。我对每个元素都有一个 DAO。(即:PersonDAO.getById()
, PersonDAO.getByName()
, ..)。
问题在于Appointment
引用了一个Person
对象。Person
在对象中引用 that的约会会很好Person
,但是如果我开始加载这些约会,它就会变成循环引用。
所以,我想我的问题是处理这个问题的正确方法只是将引用(Ids)放在 POJO 中,然后让业务层(?)进行正确的调用来获取信息?或者是否可以在实际 POJO 中以某种方式传递对 DAO 的引用,以便我可以在引用时延迟加载对象对象?但是你如何处理循环引用呢?当我有一个Person
并且我懒惰地加载他们所有的约会时,这些约会也会有一个与之关联的人。当我加载它时Person
,它可能具有与Person
我正在加载约会的不同信息。
Person
(对象 x)延迟加载 -> 约会可以延迟加载Person
(对象 x')。
因为Person
当我懒洋洋地加载他们的约会时可能已经改变了。我真的需要这个Person
对象Appointment
来引用同一个Person
对象。
我全都被这件事吸引住了。我知道我可以“让它发挥作用”,但我想尝试找到一个好的解决方案。我正在考虑为此使用hibernate,但认为它真的只是矫枉过正。也许不是。
sql-server-2005 - 需要触发器帮助以防止表上的循环引用
我们目前有一个如下所示的表:
谁能帮我想出一个约束/触发器来阻止循环引用被插入或更新到表中?
谢谢
javascript - 即使有循环引用,如何将 DOM 节点序列化为 JSON?
我想将 DOM 节点甚至整个序列化为window
JSON。
例如:
JSON.stringify()
问题是 JSON 默认不支持循环引用。
window
并且 DOM 节点有很多。window === window.window
一样document.body.ownerDocument === document
。
此外,JSON.stringify
不序列化函数,所以这不是我要找的。
dojox.json.ref
很好,不是吗?
对我来说还不够好。
为什么?
我正在尝试为不同的浏览器制作 DOM 兼容性表。例如,Webkit 支持占位符属性而 Opera 不支持,IE 8 支持localStorage
而 IE 7 不支持,等等。
我不想制作数千个测试用例。我想用通用的方法来测试它们。
更新,2013 年 6 月
我做了一个原型NV/dom-dom-dom.com。
.net - .NET 程序集引用对我来说都是循环的
更新:昨晚,我认为更改保存某些报告的文件夹的工作量太大。我的解决方法是重命名文件夹,运行我需要完成的批处理作业,然后将文件夹名称改回原来的名称。我觉得我可以把今天剩下的时间和下周的所有时间都花在这上面,但仍然没有什么可展示的。我宁愿因为与我的老板背道而驰,也不愿不能向我们的客户开具发票(这种情况每年只发生一次)。感谢所有帮助过的人,我为你愿意帮助一些匿名的家伙而感到谦卑。我不知道如何“放弃”这个问题,但仍然给你们提供道具,我会在午餐时阅读常见问题解答和任何评论。谢谢你。
我正在尝试调试我的前任创建的 ac# 应用程序。他是程序员,我是系统管理员,也许这就是我出错的地方。
无论如何,我需要重新编译其中一个程序集并将其部署到我们的生产服务器。当我编译它时,我得到了错误:
'Mcrcsip.Web.McrcsipWebExceptionBase 类型在未引用的程序集中定义。您必须添加对程序集“Mcrcsip.Web, Version=2.0.3266.28977, Culture=neutral, PublicKeyToken=c3de6c6abcdf794b”的引用。
我碰巧有该程序集的副本,当我删除对现有程序集的引用(具有不同公钥令牌的 2.0.0.0)并添加对它所要求的程序集的引用时,当我编译时,出现此错误信息:
'Mcrcsip.Web.McrcsipWebExceptionBase 类型在未引用的程序集中定义。您必须添加对程序集“Mcrcsip.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=8bbdde85caf008d0”的引用。
如果我在谷歌上搜索这个错误(当然是通用的),我会得到一堆“这就是你添加程序集引用的方式......”结果。
我该如何摆脱这个旋转木马?
以下是解决方案的布局方式:
- Mcrcsip.Amwa.Solution
http://amwa-test.internal.lan/
- Mcrcsip.Amwa.Core
- Mcrcsip.Aws.Bol
- Mcrcsip.Common
- Mcrcsip.Web
- nunit.framework
- 系统
- 系统配置
- 系统数据
- 系统.企业服务
- 系统.Web
- 系统.Web.服务
- 系统.XML
- Mcrcsip.Amwa.CrFactory
- CrystalDecisions.CrystalReports.Engine
- CrystalDecisions.Enterprise.Framework
- CrystalDecisions.Enterprise.InfoStore
- CrystalDecisions.ReportSource
- CrystalDecisions.Shared
- CrystalDecisions.Web
- Mcrcsip.Amwa.Core
- Mcrcsip.Web
- 系统
- 系统配置
- 系统数据
- 系统绘图
- 系统.Web
- 系统.XML
- Mcrcsip.Amwa.PdfFormHandler
- itextsharp
- Mcrcsip.Amwa.Core
- Mcrcsip.Web
- 系统
- 系统配置
- 系统数据
- 系统.Web
- 系统文件
- Mcrcsip.Amwa.Web
- Mcrcsip.Amwa.Core
- Mcrcsip.Amwa.CrFactory
- Mcrcsip.Amwa.PdfFormHandler
- Mcrcsip.Aws.BOL
- Mcrcsip.Common
- Mcrcsip.SharePoint
- Mcrcsip.Web
- 系统
- 系统配置
- 系统数据
- System.EnterpriseServices
- 系统.Web
- 系统.Web.服务
- 系统.XML
- Mcrcsip.Amwa.WebControls
- 系统
- 系统数据
- 系统设计
- 系统绘图
- 系统.Web
- 系统文件
- Mcrcsip.Amwa.Setup
.net - 如何检测 .NET 解决方案中程序集之间的循环引用?
您知道检测 .Net 程序集之间循环引用的有效方法吗?
我想检测/预防的情况如下:
- A 参考 B
- B 参考 C
- C 参考 A
php - 如果我有循环引用,我可以自动触发 PHP 垃圾收集吗?
我似乎记得一种设置__destruct
类的方法,它可以确保一旦外部对象超出范围,循环引用就会被清除。但是,我构建的简单测试似乎表明这并没有像我预期/希望的那样表现。
有没有办法设置我的类,当最外面的对象超出范围时,PHP 会正确清理它们?
我不是在寻找编写此代码的替代方法,而是在寻找是否可以这样做,如果可以,如何?我通常会尽可能避免这些类型的循环引用。
输出如下所示:
我所希望的:
更新:
这个与 PHP > 5.3 相关的问题有几个很好的答案,但我选择了适用于 PHP < 5.3 的答案,因为它实际上与我的项目( PHP 5.2.x )有关。
java - 创建循环通用引用
我正在编写一个应用程序来在对等网络中进行一些分布式计算。在定义网络时,我有两类 P2PNetwork 和 P2PClient。我希望这些是通用的,因此具有以下定义:
使用 P2PClient 定义 setNetwork(T network) 的方法。我希望用这段代码描述的是:
- P2PNetwork 由某种类型的客户端组成
- P2PClient 只能属于其客户端与该客户端(循环引用)相同类型的网络
这对我来说似乎是正确的,但如果我尝试创建一个非通用版本,例如
和其他变体我从编译器收到许多错误。所以我的问题如下:
- 通用循环引用是否可能(我从未见过任何明确禁止它的东西)?
- 上述通用定义是对这种循环关系的正确定义吗?
- 如果它是有效的,它是否是描述这种关系的“正确”方式(即是否有另一个有效的定义,在风格上是首选的)?
- 给定正确的通用定义,我将如何正确定义客户端和服务器的非通用实例?
database-design - 数据库设计:循环引用
我有三个数据库表:
- 用户
- 电子邮件
- 邀请函
电子邮件通过 user_id 字段链接到用户。
邀请也通过 user_id 字段链接到用户
无需邀请即可创建电子邮件,但每个邀请都必须有电子邮件。
我想链接电子邮件和邀请表,以便可以找到特定邀请的电子邮件。
但是,这会创建一个循环引用,邀请和电子邮件记录都保存同一用户的 id。
这是糟糕的设计吗?如果是这样,我该如何改进它?
我的感觉是使用外键和良好的业务逻辑就可以了。
delphi - 在 Delphi 中绕过循环引用
有没有办法绕过 Delphi 中的循环单元引用?
也许是更新版本的德尔福或一些魔法黑客或什么的?
我的 delphi 项目有 100 000 多行代码,主要基于单例类。我需要重构它,但这意味着几个月的“循环引用”地狱:)
sql - 访问sql查询循环引用错误
我正在为 access 数据库创建 sql 选择查询,并收到循环引用错误,因为我的别名与表达式中的列名相同。这是我的查询片段:
此特定别名是输出要求的一部分。有没有办法在不更改别名的情况下解决这个问题?
TIA