More nitpicking :
Would you be able to handle anything but a single integer primarykey properly ?
Ok, back to this question again - these composite keys are starting to get realy hard to work with. I'm toying around with a pessimistic/optimistic offline locking now and to keep track of a locked object/row that has ~4-5 keys is getting realy realy realy realy messy. I know it's pushing the limit to not allow more then one primary key or a sequenced key - but as far as I can see there is no 100% way to lock a composite key object/row when you need offline locking. And I've looked in PoEAA and all fowlers example use a single longint key, yes I know they are examples.
I've also looked at both EZPDO, Livepipe and some more libs and while they don't offer offline concurrency which is the main reason I would drop the composite key - they all require one unique ID. Yes I'm aware of propel and that it supports composite keys - which I do also(for now), but I see no way to lock objects for offline concurrency when they have multiple keys.
I'm more then open to suggestions on how to solve it tho