From the application's standpoint, AFAIK the JDBC driver abstracts all RAC aspects away from the application. The Java code could care less whether or not it is talking to one Oracle node or
n nodes. I've been using this for months now with no application-level issues at the JDBC level. You'll just need to create a connect string that lists both nodes using the funky Oracle nested parenthesis format.
A variation of this works fine for me against 9iR2 RAC. I would think 10g works the same.
Code:
jdbc:oracle:thin:@(description=(address_list=(address=(host=node1)(protocol=tcp)(port=1521))(address=(host=node2)(protocol=tcp)(port=1521))(load_balance=yes)(failover=yes))(connect_data=(service_name=orcl)))
On the flip side, the DBA shouldn't be too concerned about the SQL Hibernate generates. Mostly its just doing "keyed reads" against the database tables. You can enable logging for all SQL Hibernate generates, so if you want to check certain statements for performance, you'll have access to all database interactions. I recommend using something that will autoformat SQL (e.g. Toad).
By the way, does anyone know of any good SQL formatters that are free?