| | Dedication |
| | Copyright |
| | Foreword |
| | Preface |
| | | Who Should Read This Book? |
| | | Organization |
| | | Software and Versions |
| | | Conventions |
| | | Comments and Questions |
| | | Acknowledgments |
|
| | Chapter 1. An Initial Tour |
| | | Section 1.1. Defining a Persistent Object Model |
| | | Section 1.2. Project Build Environment |
| | | Section 1.3. Establish a Datastore Connection and Transaction |
| | | Section 1.4. Operations on Instances |
| | | Section 1.5. Summary |
|
| | Chapter 2. An Overview of JDO Interfaces |
| | | Section 2.1. The javax.jdo Package |
| | | Section 2.2. The javax.jdo.spi Package |
| | | Section 2.3. Optional Features |
|
| | Chapter 3. JDO Architectures |
| | | Section 3.1. Architecture Within Application JVM |
| | | Section 3.2. Datastore Access |
| | | Section 3.3. System Architectures with a JDO Application |
|
| | Chapter 4. Defining Persistent Classes |
| | | Section 4.1. Kinds of Classes and Instances |
| | | Section 4.2. Java Classes and Metadata |
| | | Section 4.3. Fields |
|
| | Chapter 5. Datastore Mappings |
| | | Section 5.1. Mapping Approaches |
| | | Section 5.2. Relational Modeling Constructs |
| | | Section 5.3. Modeling Constructs in Java and Relational Models |
| | | Section 5.4. Mapping Classes to Tables |
| | | Section 5.5. Mapping a Single-Valued Field to a Column |
| | | Section 5.6. Identity |
| | | Section 5.7. Inheritance |
| | | Section 5.8. References |
| | | Section 5.9. Collections and Relationships |
|
| | Chapter 6. Class Enhancement |
| | | Section 6.1. Enhancement Approaches |
| | | Section 6.2. Binary Compatibility |
| | | Section 6.3. Enhancement Effects on Your Code |
| | | Section 6.4. Changes Made by the Enhancer |
|
| | Chapter 7. Establishing a JDO Runtime Environment |
| | | Section 7.1. Configuring a PersistenceManagerFactory |
| | | Section 7.2. Acquiring a PersistenceManager |
| | | Section 7.3. Transactions |
| | | Section 7.4. Multiple PersistenceManagers |
| | | Section 7.5. Multithreading |
|
| | Chapter 8. Instance Management |
| | | Section 8.1. Persistence of Instances |
| | | Section 8.2. Extent Access |
| | | Section 8.3. Accessing and Updating Instances |
| | | Section 8.4. Deleting Instances |
|
| | Chapter 9. The JDO Query Language |
| | | Section 9.1. Query Components |
| | | Section 9.2. Creating and Initializing a Query |
| | | Section 9.3. Changes in the Cache |
| | | Section 9.4. Query Namespaces |
| | | Section 9.5. Query Execution |
| | | Section 9.6. The Query Filter |
| | | Section 9.7. Ordering Query Results |
| | | Section 9.8. Closing a Query |
|
| | Chapter 10. Identity |
| | | Section 10.1. Overview |
| | | Section 10.2. Datastore Identity |
| | | Section 10.3. Application Identity |
| | | Section 10.4. Nondurable Identity |
| | | Section 10.5. Identity Methods |
| | | Section 10.6. Advanced Topics |
|
| | Chapter 11. Lifecycle States and Transitions |
| | | Section 11.1. Lifecycle States |
| | | Section 11.2. State Interrogation |
| | | Section 11.3. State Transitions |
|
| | Chapter 12. Field Management |
| | | Section 12.1. Transactional Fields |
| | | Section 12.2. null Values |
| | | Section 12.3. Retrieval of Fields |
| | | Section 12.4. Serialization |
| | | Section 12.5. Managing Fields During Lifecycle Events |
| | | Section 12.6. First- and Second-Class Objects |
|
| | Chapter 13. Cache Management |
| | | Section 13.1. Explicit Management of Instances in the Cache |
| | | Section 13.2. Cloning |
| | | Section 13.3. Transient-Transactional Instances |
| | | Section 13.4. Making a Persistent Instance Transient |
|
| | Chapter 14. Nontransactional Access |
| | | Section 14.1. Nontransactional Features |
| | | Section 14.2. Reading Outside a Transaction |
| | | Section 14.3. Persistent-Nontransactional State |
| | | Section 14.4. Retaining Values at Transaction Commit |
| | | Section 14.5. Restoring Values at Transaction Rollback |
| | | Section 14.6. Modifying Persistent Instances Outside a Transaction |
|
| | Chapter 15. Optimistic Transactions |
| | | Section 15.1. Verification at Commit |
| | | Section 15.2. Optimistic Transaction State Transitions |
| | | Section 15.3. Deleting Instances |
| | | Section 15.4. Making Instances Transactional |
| | | Section 15.5. Modifying Instances |
| | | Section 15.6. Commit |
| | | Section 15.7. Rollback |
|
| | Chapter 16. The Web-Server Environment |
| | | Section 16.1. Web Servers |
| | | Section 16.2. Struts with JDO |
|
| | Chapter 17. J2EE Application Servers |
| | | Section 17.1. Enterprise JavaBeans Architecture |
| | | Section 17.2. Stateless Session Beans |
| | | Section 17.3. Bean-Managed Transactions |
| | | Section 17.4. Message-Driven Beans |
| | | Section 17.5. Persistent Entities and JDO |
|
| | Appendix A. Lifecycle States and Transitions |
| | Appendix B. JDO Metadata DTD |
| | Appendix C. JDO Interfaces and Exception Classes |
| | | Section C.1. Interfaces |
| | | Section C.2. Exceptions |
|
| | Appendix D. JDO Query Language BNF |
| | | Section D.1. Parameter Declaration |
| | | Section D.2. Variable Declaration |
| | | Section D.3. Import Declaration |
| | | Section D.4. Ordering Specification |
| | | Section D.5. Type Specification |
| | | Section D.6. Names |
| | | Section D.7. Literal |
| | | Section D.8. Filter Expressions |
|
| | Appendix E. Source Code for Examples |
| | | Section E.1. The com.mediamania.appserver package |
| | | Section E.2. The com.mediamania.content package |
| | | Section E.3. The com.mediamania.hotcache package |
| | | Section E.4. The com.mediamania.store package |
|
| | Colophon |
| | Index |