Some advantages 1. If you have stored procedures in place and would like to use them , BMP is the only way. 2. You have a legacy system for which the EJB container does not have any persistence mechanism. 3. You want to map an entity to more than one table. 4. You want more control over the SQL queries and you can write more efficienet queries than the container.