gpt4 book ai didi

orm - ColdFusion ORM : Can I specify init arguments to be passed to related entities when loaded?

转载 作者:行者123 更新时间:2023-12-05 01:23:45 27 4
gpt4 key购买 nike

假设我有一个 页面可以具有关联数组 的实体文档 实体:直接的一对多关系。

<cfcomponent entityName="Page" persistent="true" table="pages">

<!--- A Page can have many Documents --->
<cfproperty name="document" fieldType="one-to-many" cfc="Document" fkColumn="pageID" inverse="true">

</cfcomponent>

但是,每个 Document 需要知道其文件系统目录的路径,并且该属性的值可以根据上下文而变化,因此它不是持久化的,需要在实例化时传入。
<cfcomponent entityName="Document" persistent="true" table="documents">

<!--- This value needs to be set so the document knows its location --->
<cfproperty name="directoryPath" persistent="false">

<!--- Many Documents can belong to one Page --->
<cfproperty name="page" fieldType="many-to-one" cfc="Page" fkColumn="pageID">

<cffunction name="init" output="false">
<cfreturn this/>
</cffunction>

</cfcomponent>

如果我手动加载页面的文档数组或使用 Bean 工厂,我可以指定 目录路径 变量作为传递给 Document init() 方法的参数。但是在这里,文档的加载是由 Hibernate 自动完成的。

当 ORM 加载相关对象时,有没有办法将 init 参数传递给相关对象?

我知道我可以在加载后循环遍历文档并指定目录,这也许是最佳实践,但在 init 上将值传递给 each 似乎更有效。是否可以?

最佳答案

查看文档,似乎没有办法按照您的要求进行操作。

我建议的一件事是,您可以在 Page 对象中设置一个属性并从 Document 访问它,而不是循环遍历文档来设置属性。

所以在加载页面后,你会得到类似 Page.setDocumentPath(documentPath); 的内容。 .

那么在显示文档时,您可能会出现类似 document.getPage().getDocumentPath(); 的内容.

关于orm - ColdFusion ORM : Can I specify init arguments to be passed to related entities when loaded?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11737250/

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