我有以下表格: users:userID primaryKey usersDependencies:userID,dependentUserID
例:
用户:1,2,3,4,5
usersDependencies:
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 =&#34映射; false" update =" false")
知道如何设置它们吗?
由于
答案 0 :(得分:0)
many-to-many
通常是ORM应该避免的。尝试引入新实体并将many-to-many
重组为2 many-to-one
个关系。这通常更好,更灵活,以便以后延长。
话虽如此,如果usersDependencies
只是一个链接表,它不应该是一个实体。 cfc
属性应设置为User
,因为您需要一组用户。请密切关注cf orm doc,以确保您已将该概念确定下来。
然而,我甚至不确定ORM是否适用于此。我有一种感觉cfdump
可能会因TOP 1
而崩溃,因为它对于引用多对多关系的相同类型的延迟加载效果不佳。