如何在QxORM中使用多个主键定义表,其中一个是与另一个表的“多对一”关系

时间:2014-02-05 14:47:17

标签: c++ sql qt qxorm

用多个主键定义表(“secondtable”)的正确方法是什么,其中一个(“| first_table_key”)是与另一个表(“firsttable”)的“多对一”关系?

由于“first_table_key”的多个定义,这样做不起作用!

namespace qx 
{
template <> void register_class(QxClass<secondtable> & t)
{
   t.id(&secondtable::m_id, “second_table _key|first_table_key”);
   t.data(&secondtable::m_text, "second_table_text");
   t.relationManyToOne(&secondtable::m_firsttable, “first_table_key”);
}
}

1 个答案:

答案 0 :(得分:0)

试试这个:

namespace qx 
{
template <> void register_class(QxClass<secondtable> & t)
{
   t.id(&secondtable::m_id, “second_table _key|first_table_key”);
   t.data(&secondtable::m_text, "second_table_text");
   qx::IxSqlRelation * pRelation = t.relationManyToOne(&secondtable::m_firsttable, “first_table”);
   pRelation->getDataMember()->setName("first_table_key");
}
}

如您所见,您可以使用另一个键( first_table )定义您的关系,该键与您的主键( first_table_key )不同。然后,只需使用 pRelation-&gt; getDataMember() - &gt; setName()方法输入正确的关系名称。