Il vantaggio principale con le annotazioni di Hibernate è il fatto che un POJO semplice (chiamato anche Business Object per la maggior parte del tempo) può diventare persistente attraverso le annotazioni di Hibernate (o in realtà JPA).
Nello scenario in cui il nostro modello di dominio concettuale (oggetti di business utilizzati dai client) non riflette esattamente il modello fisico (database), come gestirlo? Devo creare un "secondo" modello che rappresenti gli oggetti di business "veri" utilizzati dai client E un "oggetto di archiviazione dati" contenente l'associazione di annotazioni di Hibernate? Ovviamente, con questa soluzione, i DAO saranno responsabili della conversione di ogni BO in oggetto dati e viceversa.