0

我有两个对象,Person 和 Family。我使用一个名为“join_person_family”的连接表来跟踪这种多对多关系。连接表有另一个名为“IS_PRIMARY”的属性,我想在使用 EntityLoadByExample() 实例化人员对象时获取并过滤它,但我不知道如何使用 CF ORM 执行此操作。我可以通过 SQL 轻松做到这一点,但我正在尝试尽可能多地使用 ORM。可能还有另一种方法可以跟踪此属性,但我想不出任何东西。提前感谢您的帮助。

这是 Family.cfc:

<cfcomponent hint="I am a Family" output="false" persistent="true" extends="_Proxy">
<cfproperty name="FAMILY_ID" hint="FAMILY_ID" type="numeric" ormtype="int" length="11" fieldtype="id" generator="identity" required="true"/>
<cfproperty name="PERSON" hint="PERSON" fieldtype="many-to-many" cfc="person" linktable="join_family_person" FKColumn="FAMILY_ID" inversejoincolumn="PERSON_ID" lazy="true"/>
<cfproperty name="STATUS" type="string" ormtype="string" length="45"/>
<cfproperty name="COMMENT" hint="COMMENT" type="string" length="255"/>
<cffunction name="init" hint="constructor" access="public" returntype="family" output="false">
    <cfscript>
return this;
</cfscript>
</cffunction>
</cfcomponent>

这是 Person.cfc:

<cfcomponent hint="I am a Person" output="false" persistent="true" extends="_Proxy">
<cfproperty name="FAMILY" hint="FAMILY" fieldtype="many-to-many" cfc="family" linktable="join_family_person" FKColumn="PERSON_ID" inversejoincolumn="FAMILY_ID" lazy="true"/>
<cfproperty name="PERSON_ID" hint="PERSON_ID" type="numeric" ormtype="int" length="11" fieldtype="id" generator="identity" required="true"/>
<cfproperty name="USER" hint="USER" fieldtype="one-to-one" cfc="mend_user" FKColumn="USER_ID" lazy="true"/>
<cfproperty name="FIRST_NAME" hint="FIRST_NAME" type="string" length="45"/>
<cfproperty name="LAST_NAME" hint="LAST_NAME" type="string" length="45"/>
<cfproperty name="STATUS" hint="STATUS" type="numeric" ormtype="int"/>
<cffunction name="init" hint="constructor" access="public" returntype="person" output="false">
    <cfscript>
    return this;
    </cfscript>
</cffunction>
4

1 回答 1

1

找到了这个回复,https://groups.google.com/forum/?hl=en&fromgroups=# !topic/cf-orm-dev/6Fox77MAcbs 。读完之后,我认为无论如何这种方法实际上是优越的。

与加入对象具有多对一关系的中间实体将允许我使用 EntityLoadByExample() 来获取由“IS_PRIMARY”过滤的相关人员对象。然后,如果需要,我可以过滤人员对象。

于 2012-10-17T15:49:44.157 回答