Code:
I don't know what exactly you mean by referring to costs.
Yep, meant performance.
Code:
Also it would be nice to see how this general purpose persistence strategy behaves when it comes to losing the advantage of Hibernate and for every kind of object there needs to be a special persistance handling (manually select the table and map this object towards the table layout).
Well, i think it makes only sense if the implementation can use the specification (criteria) api. this would require to write your own criteria api. However i don't think it satisfies the work unless you really need to switch persistence frameworks frequently or you are a no-compromises-super-clean-strict-OO-guy.
Code:
I guess thinking ahead is a bit dangerous in terms of TDD. But we have enough experience to justify taking bigger steps - well hopefully at least.
Hehe, hope so too. But it does no harm, i could just remove the strategy object and doing it directly in the method. Also i find it hard not thinking ahead... constantly trying though 
l8er
andi