table = 'person'; $def->class = 'ezcappContactPerson'; $def->properties['firstname'] = new ezcPersistentObjectProperty(); $def->properties['firstname']->columnName = 'firstname'; $def->properties['firstname']->propertyName = 'firstname'; $def->properties['firstname']->propertyType = ezcPersistentObjectProperty::PHP_TYPE_STRING; $def->idProperty = new ezcPersistentObjectIdProperty(); $def->idProperty->columnName = 'id'; $def->idProperty->propertyName = 'id'; $def->idProperty->generator = new ezcPersistentGeneratorDefinition( 'ezcPersistentSequenceGenerator' ); $def->properties['lastname'] = new ezcPersistentObjectProperty(); $def->properties['lastname']->columnName = 'lastname'; $def->properties['lastname']->propertyName = 'lastname'; $def->properties['lastname']->propertyType = ezcPersistentObjectProperty::PHP_TYPE_STRING; // 1:1 relation to detail table $def->relations['ezcappContactDetail'] = new ezcPersistentOneToOneRelation( "person", "detail" ); $def->relations['ezcappContactDetail']->columnMap = array( new ezcPersistentSingleTableMap( "id", "person" ), ); $def->relations['ezcappContactDetail']->cascade = true; // 1:n relation to email table $def->relations['ezcappContactEmail'] = new ezcPersistentOneToManyRelation( "person", "email" ); $def->relations['ezcappContactEmail']->columnMap = array( new ezcPersistentSingleTableMap( "id", "person" ), ); $def->relations['ezcappContactEmail']->cascade = true; // n:m relation to address table $def->relations['ezcappContactAddress'] = new ezcPersistentManyToManyRelation( "person", "address", "person_address" ); $def->relations['ezcappContactAddress']->columnMap = array( new ezcPersistentDoubleTableMap( "id", "person", "address", "id" ), ); return $def; ?>