Яка різниця між постійністю, керованою компонентом, і постійністю, керованою контейнером?
У компоненті CMP первинний ключ і всі функції збереження виконуються контейнером; у компоненті BMP ви повинні реалізувати первинний ключ і всі функції, щоб зберегти постійність вашого компонента. Керування первинним ключем здійснюється в методі ejbCreate.
Постійність, керована контейнером (CMP), bean entity bean, для якого контейнер обробляє взаємодію між корпоративним bean і джерелом даних. Контейнер відповідає за синхронізацію полів екземпляра з постійним сховищем.
Entity bean є стійкий оскільки їхні дані постійно зберігаються в певній формі зберігання даних, наприклад, у базі даних: компоненти сутності переживають збій сервера, відновлення після відмови або збій мережі. Коли компонент сутності відновлюється, стан попереднього екземпляра автоматично відновлюється.
Постійність, керована компонентом. Ви кодуєте компонент, керований компонентом, забезпечуючи виклики доступу до бази даних — через JDBC і SQL — безпосередньо в методах класу компонента. Виклики доступу до бази даних повинні бути в методи ejbCreate, ejbRemove, ejbFindXXX, ejbLoad і ejbStore.
Хоча компоненти з транзакціями, керованими контейнером, вимагають менше кодування, вони мають одне обмеження: коли метод виконується, він може бути пов’язаний або з однією транзакцією, або з жодною транзакцією. Якщо це обмеження ускладнить кодування вашого компонента, вам слід розглянути можливість використання транзакцій, керованих компонентом.