In the hibernate configuration file, and some elements have a unique configuration of attributes, but I often see the abuse of the elements, especially those automatically generated hbm file tools often automatically generate the configuration, and generally do not understand developers the true meaning of hibernate configuration. the true meaning of unique is: when in the generation of DDL statements, will be used, in other words, if we have a database (this is very common), do not need to hbm files generated from the DDL statement, it does not need configuration of the property.
In fact, unique in the data does not add any role, as was mentioned above, only in the hbm file generated from the ddl before the role statement, and will not check the data at runtime. Added to prevent the duplication of data, or in the database to create unique index (database to ensure that), or insertion in advance in check (human security). Of course, in most cases is a combination of both.