coldfusion 9 orm一对一多重cfc

时间:2013-01-11 18:22:07

标签: orm coldfusion coldfusion-9

我正在使用CF9 ORM -

我有一个对象模型,其中有多个对象可以与一个特定对象具有一对一的关系。有没有办法说明与两种潜在CFC之一的反比关系?

CFC 1a(ProblemType1):

property name="Product" cfc="Product" fieldtype="one-to-one" fkcolumn="productID" ;

CFC 1b(ProblemType2):

property name="Product" cfc="Product" fieldtype="one-to-one" fkcolumn="productID" ;

CFC 2:

property name="Problem" fieldtype="one-to-one" cfc=???;

我可以使用这个接口吗?还是...?

1 个答案:

答案 0 :(得分:3)

CFC 1a和CFC 1b都可以是父实体CFC 1的子类.CFC 1应该与“Product”有关系,它将由两个子类继承。然后,CFC 2可以在其关系中指向CFC 1。

示例实体:

/** CFC 1 **/
component persistent="true" {

    property name="Product" cfc="Product" fieldtype="one-to-one" fkcolumn="productID";

}

/** CFC 1a **/
component persistent="true" extends="baseProblem" {

    // problemtype1 specific properties go here

}

/** CFC 1b **/
component persistent="true" extends="baseProblem" {

    // problemtype2 specific properties go here

}

/** CFC 2 **/
component persistent="true" {

    property name="Problem" fieldtype="one-to-one" cfc="baseProblem";

}

如果采用这种方法,您可能需要查看inheritance mapping,特别是discriminatorColumndiscriminatorValue属性。在不知道如何设置数据库模式的情况下,很难就这一点提供进一步的建议,但文档应该可以帮助您入门。