我有以下课程:
Class SearchTemplateDO [ Abstract ]
{
Relationship QueryParts As QueryPartDO [ Cardinality = many, Inverse = SearchTemplate ];
}
Class MyCustomSearchDO Extends (%Persistent, SearchTemplateDO)
{
/// inherits all properties / relationships from SearchTemplateDO
}
Class QueryPartDO Extends %Persistent
{
...
Relationship SearchTemplate As SearchTemplateDO
[ Cardinality = one, Inverse = QueryParts ];
Index SearchTemplateIndex On SearchTemplate;
}
当我在SQL中查看这两个表时,我看到QueryPartDO的SearchTemplate字段为空,当我查看MyCustomSearchDO时,我没有看到“QueryParts”字段,尽管两个表都有数据
答案 0 :(得分:0)
MANY或CHILD端不会被投影为字段,因为这些关系在磁盘上是无状态的,而SQL不处理内存中的对象。相反,您必须根据ONE或CHILD方的ID值以及MANY或PARENT方的参考字段执行简单连接:
答案 1 :(得分:0)
您不能在非抽象子类中引用抽象父类,因为抽象类没有定义存储策略。关系中的两个类都必须是抽象的(在这种情况下根本不存储数据)或非抽象的(在这种情况下,你将有适当的存储策略)
答案 2 :(得分:0)
最后,我通过在抽象类上扩展%Persistent来实现这一点。在我尝试之前,没有任何工作,我一直收到一个奇怪的错误。但是,我在一个示例项目中尝试了这个,现在它可以工作。