Linea guida: Progettazione di bean di entità
Questa linea guida descrive come progettare bean di entità per un'applicazione J2EE.
Relazioni
Elementi correlati
Descrizione principale

Introduzione

Questa linea guida si focalizza sulla progettazione di entità di bean. Un'ulteriore guida su come identificarli e modellarli è fornita da Linea guida del prodotto di lavoro: Bean di entità. Una guida generale sugli EJB viene fornita dalla Linea guida del prodotto di lavoro: EJB (Enterprise JavaBean)

Attributi permanenti e chiave primaria

Identificare gli attributi permanenti e la chiave primaria del bean di entità.

BMP (Bean-managed Persistence) e CMP (Container-managed Persistence)

Vedere Concetto: Panoramica della piattaforma J2EE per una descrizione di questi due approcci di persistenza.

In generale, CMP richiede un codice più semplice di BMP. Tuttavia, se una prestazione è fondamentale o è necessario un maggior controllo sulla mappatura logica al database, può essere necessario l'utilizzo di BMP.

Se il contenitore EJB non presenta il livello di supporto richiesto, si potrebbe utilizzare uno strumento di mappatura relativo all'oggetto e di terza parte, sia con BMP o, se il tool è integrato al contenitore, con CMP.

Se si decide di utilizzare CMP ed è disponibile un modello Dati, è possibile associare l'EJB di entità CMP alle tabelle di database nel modello Dati. Questa mappatura si rifletterà infine nel descrittore di distribuzione dei moduli EJB. Per ulteriori informazioni, vedere Tecnica: Assemblaggio di moduli J2EE.

Se si decide di utilizzare BMP, incapsulare tutti gli accessi al database nella classe DAO (Data Access Object), che è una classe Java che nasconde ed include il meccanismo di memorizzazione sottostante e isola le modifiche quando e se l'interfaccia della fonte dei dati cambia. Sebbene si prevede che la fonte dei dati sia sempre un RDBMS, potrebbe esservi lievi differenze nella sintassi e nel formato SQL che beneficerà dell'isolamento in una classe DAO. Vedere Core J2EE Patterns - Data Access Object Pattern ([ALU01].