This is an apples to apples comparison of JDO and oracles user defined types via JDBC?
I don't think so.
One of the important things which JDO gives you is the ability to map relationships between relational tables to relationships between object instances in a natural and transparent way, and to give you 'navigational' access to your data via lazy loading.
So after you find your root object, which needs explicit use of JDO, you can simply access members which refer to other persistent objects (including collections of persistent objects) in exactly the same way you would if no persistence was involved.
The author of this article has found a way to use the *non-portable* UDTs of Oracle to modestly improve the use of JDBC, but in no way is this a general ORM solution with the scope of JDO.