假设我有一个Page实体,它可以有一组关联的Document实体:一个简单的一对多关系。
<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 工厂,我可以将directoryPath变量指定为传递给 Document init() 方法的参数。但是在这里,文档的加载是由 Hibernate 自动完成的。
当 ORM 加载相关对象时,有没有办法将 init 参数传递给相关对象?
我知道一旦加载并指定目录,我就可以遍历文档,这也许是最佳实践,但在 init 上将值传递给每个文档似乎更有效。可能吗?