My code was working on 4.0.M5, but I ca not figure out how to make it work on B2, I think the problem is that I am not installing my DbAdapterDetector properly.
package com.ace.dba; import static org.apache.cayenne.configuration.Constants.SERVER_ADAPTER_DETECTORS_LIST; import org.apache.cayenne.configuration.server.DbAdapterDetector; import org.apache.cayenne.dba.postgres.PostgresSniffer; import org.apache.cayenne.di.Binder; import org.apache.cayenne.di.Module; public class PcExpressPosModule implements Module { public void configure(Binder binder) { //4.0.m5: //binder.bindList(SERVER_ADAPTER_DETECTORS_LIST).before(PostgresSniffer.class).add(PcExpressPosPgDetector.class); //4.0.b2: binder.bindList(DbAdapterDetector.class).insertBefore(PostgresSniffer.class, PcExpressPosPgDetector.class ); //tryes param in reverse order nothing } } My PcExpressPosPgDetector: public class PcExpressPosPgDetector extends PostgresSniffer { public PcExpressPosPgDetector(@Inject AdhocObjectFactory objectFactory) { super(objectFactory); } @Override public DbAdapter createAdapter(DatabaseMetaData md) throws SQLException { PostgresAdapter db = (PostgresAdapter) super.createAdapter(md); db.setPkGenerator(new PcExpressPosUUIDPkGenerator(db)); return db; } } PcExpressPosUUIDPkGenerator detects pk columns of type UUID and generates a uuid for then,.. thats all. Atte. Juan Manuel Díaz Lara