The SequenceTable automatic key generator always executes a create table statement, and just ignores any errors. I don't believe this is appropriate – I suspect in most cases the user is not going to expect/want the app server to create tables (or indeed execute any DDL).
The SQL automatic key generator requires an initSQL statement that is always executed. Again, I don't feel this is appropriate, since I think it will be much more common for the underlying database sequence (or whatever) to already exist (and as is it will generate a warning on every startup if your database is configured correctly).
If the create/initialize behavior is strongly desired, there should be a flag to enable it (defaulting to false IMHO) and/or this step should be skipped if no initSQL is specified.
The AutoIncrement key generator doesn't seem to handle the case where the PK column of the EJB table itself is set to AUTO_INCREMENT (e.g. MySQL), since it seems to want a SQL statement separate from the EJB insert in order to produce the new ID. Perhaps I just don't understand it correctly, or perhaps this should be a separate enhancement request.
Also, there's no way to map a DB sequence (Oracle, PostgreSQL) which itself has a batch/increment size (perhaps the SQL automatic key generator should be able to use a batch size like the TableSequence generator can).
These appear to actually be TranQL problems, but there's no such category above. See org.tranql.pkgenerator.*