Entity beans involve with transactions and relation ships among other entity beans so any BMT bean can't accept the transaction or the transaction can't be propagated into BMT bean. I know Session beans also participates in transactions but session bean is like a process so there is chance that it can be independent itself and run the process but that may not be the case with Entity beans.So some times there is a chance to have BMT session bean/MDBs. So probably this is one reason. So that is why they make it compulsory for entity beans. the recommended way is Container even for Session and MDBs. I too was having the same question and I think I still have.