Recently I have had the pleasure to work with Oracle's Jdeveloper IDE
& the BC4J DAO/Object persistance library . These tools are
supposed to make it super quick to develop oracle based jsp/struts
apps. Allow me to share one of the many annoyances.
Database Rows are exposed by a common row interface. This is cool
because I can now grab an instance of a query, get a row and pass it
off to the view layer!
Well at least that's how it's supposed to work. But leave it to Oracle
to do things backwards. The auto-generated row classes have a property
for each column in the query and the associated getters/setters.
Great! that's a java bean now I can simply pass it off to the view
layer and use the default struts tags to view the bean....but wait,
it's too good to be true!
Oracle decided to not follow java bean conventions, but instead capitalize the first letter of each property.
so:
what should be:
String fieldName;
becomes
String FieldName;
Thank's Oracle!
Now we can't use any struts bean tags or any beanutils classes without
first converting the so-called bean to a Map and correcting the case of
each property.
Way to go Oracle for completely missing the point of the Java Bean convention!
I have many more Jdeveloper/BC4J horror stories, anyone else have some?