SunのCachedRowSet + HSQLDB

SunのJDK付属のCachedRowSetImplはacceptChanged()で、Connection#setTransactionIsolation()を呼びに行くみたい。HSQLDBは(1.7.1では)TRANSACTION_READ_UNCOMMITTEDしかサポートしていないので、呼び出しに失敗しSQLExceptionがかえる。というわけで先にsetTransactionIsolation()をしとくといいみたいな。


Connection con = getConnection();
Statement smt = con.createStatement();
ResultSet rs = smt.executeQuery("select * from video");

CachedRowSetImpl crs = new CachedRowSetImpl();
crs.populate(rs);
crs.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);//★これ

crs.next();//最初の行
System.out.println(crs.getString("title") + "," + crs.getInt("price"));
crs.updateInt(2, 100);//2つ目のカラム
crs.updateRow();
crs.acceptChanges(con);
crs.commit();

smt.close();
con.close();

updateIntって、せめてカラム名で指定できないものだろうか。。。