I've got a table that utilizes a car-incremented primary key and contains several fields.

<column name="id" type="INTEGER" primaryKey="true" required="true" autoIncrement="true" />
<column name="field1" type="INTEGER" required="true" />
<column name="field2" type="INTEGER" required="true" />
<column name="field3" type="INTEGER" />
<column name="field4" type="INTEGER" />
<column name="field5" type="INTEGER" />

I wish to make certain that the field1 + field2 combo isnt used more than once, so I added them as primary keys in addition to the id, but this is creating problems when I try to usefindPK(). I would prefer to have an auto-incremented id as primary key but I also want to make sure that the combo field1+field2 isnt joined more often than once.

<column name="id" type="INTEGER" primaryKey="true" required="true" autoIncrement="true" />
<column name="field1" type="INTEGER" required="true" primaryKey="true" />
<column name="field2" type="INTEGER" required="true" primaryKey="true" />

Try setting a special index on individuals fields, something similar to :

<unique>
  <unique-column name="/field1/" />
  <unique-column name="/field2/" />
</unique>

according to propel doc

Here is the solution for doctrine with yaml

Pet:
  columns:
    pet_name:  {type: string(32)}
    owner_id: {type: integer}
  indexes:
    owner_name:
      fields: [pet_name, owner_id]
      type: unique