The REVTYPE column is needed as part of the primary key in order to handle map updates, because Hibernate implements map updates (a PUT operation to replace the value for a given key) by issuing separate DELETE and INSERT statements. Therefore without the REVTYPE column to distinguish the DELETE and the UPDATE you would have two rows with identical REV, ID and KEY values. In the current version the VALUE column provides uniqueness in this case, but the VALUE column is the one we are trying to keep out of the primary key. |