Your question is a bit vague, but the reason for using Natural-Id in the hbm file would be to automatically force things to be unique. This property must be assigned to fields that make your data unique. When you put an attribute in these fields, hibernate will generate unique indexes for you.
If your question Why should one ever use natural keys? There are too many to list here, but a simple example ...
If you decide to expose your data through web services, channels, etc., it is not recommended to provide the end users with the keys to your database. This is bad for many reasons, one of which is what happens if they store it and you lock yourself again? You are stuck! Itβs best to speak in terms that they understand, which would be the things that are already present in the data (naturally;))
If you are interested in reading about it yourself on AgileData.org , you will like Natural vs Surrogate
source share