Beyond JDO 1.0 217 13.1.2 Clarification of extent The JDO 1.0 API provides for the construction of extents that include or exclude subclasses. The construction of extents that do not include subclasses is intended to facilitate performance improvements within those JDO implementations that map to underlying relational databases. By knowing that subclasses are to be excluded, the implementation can reduce the number of table joins in SQL queries based on that extent. However, from an object oriented perspective, the concept of an extent that does not include subclasses is nonsensical. By definition, any instance of a subclass is ascribed the types of its superclass, and the Java instanceof operator will evaluate to true for each of them. Indeed, through its extensive support for polymorphism, Java itself does not recognize the notion of an instance of this class but not any of its subclasses. In the same way that the implementation of extents without subclasses can yield a performance improvement for RDBMS-based implementations, it can cause significant complications for ODBMS-based implementations. Finally, any application developer who employs extents without subclasses is making the assumption, perhaps unwisely, that there will never be any subclasses. This goes against the tenets of object oriented design. I believe that the notion of an extent without subclasses should be made a hint to the implementation. The implementation would be at liberty to include any instances of the extent s candidate class (even subclasses thereof). However, if it is beneficial in performance terms for the implementation to exclude subclasses, then it may do so. As such, extents without subclasses should be used only when it is known that no subclasses exist, and it is necessary to achieve the performance gains offered by a particular relational implementation. This would maintain the object oriented correctness of JDO and give RDBMS-based implementations every chance of improving performance, whilst not burdening ODBMS-based implementations with unnecessary complications. 13.1.3 JDOQL JDOQL holds the promise of being an efficient, vendor-neutral query language based on familiar Java syntax. Its restriction that only persistent fields may be accessed enables implementations to execute queries quickly. This is in contrast to true object query languages that require the instantiation of all candidate instances, many of which will fail the filter criteria before the filter can be evaluated. However, the JDOQL we have with JDO 1.0 is just a beginning, and I list below some of the areas where enhancements and new features can be expected. 13.1.3.1 Projection Presently JDOQL is only capable of returning a subset of the candidate collection or extent. If you give a query a collection of orders, it will return to you a subset of that collection you still get just orders.
Hint: If you are looking for high quality and reliable webspace provider to host and run your jsp hosting application check Virtualwebstudio jsp web hosting provider