linktable的Coldfusion 9.02 ORM映射

linktable的Coldfusion 9.02 ORM映射,orm,coldfusion,coldfusion-9,Orm,Coldfusion,Coldfusion 9,我有以下表格: 用户:userID primaryKey usersDependencies:userID,dependentUserID 例: 用户:1、2、3、4、5 用户依赖性: 1, 2 1, 3 1, 4 2,3 以及以下组件: User.cfc component persistent="true" output="false" table="users" { property name="userID" type="int" unSavedValue="0" fieldtyp

我有以下表格: 用户:userID primaryKey usersDependencies:userID,dependentUserID

例: 用户:1、2、3、4、5 用户依赖性: 1, 2 1, 3 1, 4 2,3

以及以下组件:

User.cfc

component  persistent="true" output="false" table="users"
{

property name="userID" type="int" unSavedValue="0" fieldtype="id" unique="true" notnull="true" generator="native" default="0" setter="false";

property name="dependencies" fieldtype="many-to-many" cfc="UserDependency" fkColumn="userID" inverseJoinColumn="dependentUserID" 
         singularname="dependency" type="array" cascade="all" linktable="usersDependencies" ;

}

UserDependency.cfc 

component  persistent="true" output="false" table="usersDependencies"
{

property name="userID" fieldtype="id,many-to-one" fkcolumn="userID" cfc="User" insert="false" update="false";


property name="dependentUserID" fieldtype="id,many-to-one" fkcolumn="userID" insert="false" update="false";
}

但上述映射会产生以下错误: 实体:UserDependency列:userID映射中的重复列应使用insert=false update=false进行映射

知道怎么设置吗

感谢

在ORM中,多对多通常是应该避免的。尝试引入一个新实体,并将多对多关系重组为2个多对一关系。这通常效果更好,并且在以后的扩展中更灵活

话虽如此,如果usersDependencies只是一个链接表,那么它不应该是一个实体。cfc属性应该改为User,因为您需要一个用户数组。请密切关注cf orm文档,以确保您已经确定了概念


然而,我甚至不确定ORM是否适用于此。我觉得即使使用TOP 1,cfdump也可能会崩溃,因为它不能很好地处理引用多对多关系的同一类型的延迟加载。

谢谢Henry,是的,我只需要一组依赖于所选用户的用户。然后在UI中显示依赖项,如果它发生了变化,那么将dbmany中的依赖项更新为多个通常是在ORM中应该避免的事情,这有什么原因吗?我以前从未见过这种说法。只是好奇而已,这是一种用途,你最终会知道的。我以前试过用它,但大多数时候我会用2个多对1来代替。