One of the major challenges faced by enterprise Java developers is overcoming the mismatch between objects and databases. Storing objects in Java is more than simple JDBC calls; a solid design incorporates a persistence layer that separates the details of the database from the business logic. The persistence layer should address mapping and run-time issues such as caching, object identity, inheritance, legacy database integration, querying, stored procedure use, storing objects across multiple tables, and transaction management. Additional challenges arise through the use of multi-tier architectures and application servers. Moreover, customers face challenges with disparate data sources and objects need to be mapped and integrated with relational data, mainframe data and ERP systems.
Enterprise JavaBeans developers face additional challenges. Deciding what kind of EJB architecture should be used for data-centric enterprise applications, determining what persistence strategies are best suited to EJB, and understanding the problems specific to EJB are among the key issues that must be addressed. The purpose of this talk is to outline the persistence issues for Java objects and EJBs, and to describe the various strategies employed by persistence layers to solve these problems. We will also discuss these challenges and solutions in the context of various EJB application architectures. It is assumed the audience has some familiarity with Enterprise JavaBeans. Basic relational database and object modeling knowledge are also assumed.