Hello,
I'm using 'SQLAlchemy-0.4.7' and I want to realize a join between two
tables over a mediate table. So I have written following code:
---------------------------------------
class MSanctionEntity(Mapper):
class_name = 'hapo.common.entity.SanctionEntity'
table_name = 'ent_entity'
//table 'ent_entity' = parent-table
//table 'cou2ent' = mediate table
//'hapo.common.countries.Country' is mapped on table
''cou_country' (child)
@mapper_property('hapo.common.countries.Country',secondary_table='cou2ent')
def citizens(self, mapper, cou_mapper, metadata, username,
cou2ent):
return sqlalchemy.orm.relation(
cou_mapper,
uselist=True,
secondary= cou2ent
)
---------------------------------------
But I get this error message:
File "/home/kikr/buildout-eggs/SQLAlchemy-0.4.7p1-py2.4.egg/
sqlalchemy/orm/properties.py", line 542, in __determine_joins
raise exceptions.ArgumentError("Could not determine join condition
between parent/child tables on relation %s. "
ArgumentError: Could not determine join condition between parent/child
tables on relation SanctionEntity.citizens (Country). Specify a
'primaryjoin' expression. If this is a many-to-many relation,
'secondaryjoin' is needed as well.
---------------------------------------
debug informations:
(Pdb) self.parent.local_table
Table('ent_entity', MetaData(XXX)), Column(u'ent_origin_id',
PGBigInteger(), table=<ent_entity>, nullable=False), Column('lis_key',
Integer(),
ForeignKey('_portalUserGroup.asl_allowed_sanction_list_view.lis_id'),
table=<ent_entity>), Column(u'ent_id', PGBigInteger(),
table=<ent_entity>, primary_key=True, nullable=False),
Column(u'reg_key', PGBigInteger(),
ForeignKey(u'productiv.reg_regulation.reg_id'), table=<ent_entity>,
nullable=False), schema='productiv')
(Pdb) self.secondary
Table('cou2ent', MetaData(TLEngine(XXX)), Column(u'ent_key',
PGBigInteger(), ForeignKey(u'productiv.ent_entity.ent_id'),
table=<cou2ent>, nullable=False), Column(u'cou_key', PGChar(length=2,
convert_unicode=False, assert_unicode=None),
ForeignKey(u'cou_country.cou_iso2'), table=<cou2ent>, nullable=False),
Column(u'origin_id', PGBigInteger(), table=<cou2ent>, nullable=False),
Column(u'reg_key', PGBigInteger(),
ForeignKey(u'productiv.reg_regulation.reg_id'), table=<cou2ent>,
nullable=False), schema='productiv')
(Pdb) self.mapper.local_table
Table('cou_country', MetaData(TLEngine(XXX)), Column(u'cou_iso2',
PGChar(length=2, convert_unicode=False, assert_unicode=None),
table=<cou_country>, primary_key=True, nullable=False),
Column(u'cou_name', PGString(length=80, convert_unicode=False,
assert_unicode=None), table=<cou_country>, nullable=False),
Column(u'cou_printable_name', PGString(length=80,
convert_unicode=False, assert_unicode=None), table=<cou_country>,
nullable=False), Column(u'cou_iso3', PGChar(length=3,
convert_unicode=False, assert_unicode=None), table=<cou_country>),
Column(u'cou_numcode', PGSmallInteger(), table=<cou_country>),
Column(u'cou_cctld', PGChar(length=2, convert_unicode=False,
assert_unicode=None), table=<cou_country>), schema='public')
---------------------------------------
I don't see the bug in debug informations. Please help me.
Thanks,
Kai.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---