Accessing and Updating Instances

Once you have accessed some instances by iterating an Extent or executing a query, you can access related instances by traversing references and iterating through collections contained in the accessed instances. The JDO implementation ensures that the related objects are instantiated and read from the datastore. All classes that can access a field—based on its access modifier (public, private, etc.)—can directly access and modify the field, just as they would if the application were not running in a JDO environment.

The following program accesses a specific Movie instance and determines how many DVD copies of the Movie are currently available for rent. It accesses a specific Movie instance and then navigates to related instances. Line [1] accesses the Movie, based on its title. Appendix E contains the implementation of the StoreQueries class. Line [2] accesses the set of associated MediaItem instances. We access each MediaItem instance on line [3] and determine if it is a DVD format on line [4]. If so, line [5] accesses its set of associated RentalItem instances. We acquire a reference to each RentalItem instance on line [6]. On line [7], we determine whether the RentalItem is currently being rented. If it is currently rented to a customer, the value of rental will not be null. If rental is null, then it should be in stock and available for rent. In this case, we increment the dvdRentalsInStock counter. Once all the instances have been accessed, we ...

Get Java Data Objects now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.