1) There are two parts in reverse engineering. First one is MetaDataDialect which is doing the low level reading of metadata from the database and transforms it into a model similar to JDBC metadata but is not dependent on it. This is the *right* place to implement database specific identity implementation.
See http://fisheye.jboss.org/browse/Hiberna ... ng/dialect
and if you want to see a specific db identity example look at http://fisheye.jboss.org/browse/Hiberna ... alect.java
In case you don't want to do that, i.e. you don't know how to get it from the specific db and you dont want to specify it manually in reveng.xml you can control the id strategy in the ReverseEngineeringStrategy which abstraction is higher than MetaDataDialect and instead of raw data it is talking about id strategy, class and associations based on table,column and foreignkeys.
Using ReverseEngineeringStrategy is described here: http://docs.jboss.org/tools/3.0.1.GA/en ... g-strategy
and the method(s) to implement is getTableIdentifer*
2) Automatic serialVersionUID generation is evil :) Look in HBX jira for discussions on this....waiting for someone to come up with an algorithm that is not broken ;)