There was an Oracle specific bug due to the DDL generation and ordering of properties (and hence columns).
The DDL generation doesn't always put the primary key as the first column in the table and this mostly occurs when using MappedSuperClass which holds the @Id property.
The issue is the returning of the generated key value from Oracle. This is actually based on the table column order and not the column insert order - and we can get back the wrong value as the generated id.
Oracle JDBC driver doesn't support getGeneratedKeys for JDBC batch processing.
For this reason, the ID generation will work different for Oracle using sequences prior to binding the insert. We will use batch loading of sequences to make this more efficient (with a configurable batch size).
Fixed in HEAD.