User: dirk
Date: 01/02/12 01:20:36
Modified: src/main/org/jboss/ejb/plugins/jaws/jdbc JDBCCommand.java
JDBCLoadEntityCommand.java
Log:
JAWS patch for using nested fields.
Revision Changes Path
1.22 +32 -6 jboss/src/main/org/jboss/ejb/plugins/jaws/jdbc/JDBCCommand.java
Index: JDBCCommand.java
===================================================================
RCS file:
/products/cvs/ejboss/jboss/src/main/org/jboss/ejb/plugins/jaws/jdbc/JDBCCommand.java,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- JDBCCommand.java 2000/12/07 15:44:36 1.21
+++ JDBCCommand.java 2001/02/12 09:20:35 1.22
@@ -56,7 +56,8 @@
* utility methods that database commands may need to call.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Justin Forder</a>
- * @version $Revision: 1.21 $
+ * @author <a href="mailto:[EMAIL PROTECTED]">Dirk Zimmermann</a>
+ * @version $Revision: 1.22 $
*/
public abstract class JDBCCommand
{
@@ -103,7 +104,7 @@
/**
* Gives compile-time control of tracing.
*/
- public static boolean debug = false;
+ public static boolean debug = true;
// Constructors --------------------------------------------------
@@ -469,6 +470,25 @@
return result;
}
+ /**
+ * Wrapper around getResultObject(ResultSet rs, int idx, Class destination).
+ */
+ protected Object getResultObject(ResultSet rs, int idx, CMPFieldMetaData
cmpField)
+ throws SQLException {
+ if (!cmpField.isNested()) {
+ // do it as before
+ return getResultObject(rs, idx, cmpField.getField().getType());
+ }
+
+ // deal with composite object
+ log.warning("Using Inprise feature.");
+
+ // Assuming no one will ever use BLOPS in composite objects.
+ // TODO Should be tested for BLOPability
+ return rs.getObject(idx);
+ }
+
+
/**
* Gets the integer JDBC type code corresponding to the given name.
*
@@ -578,8 +598,7 @@
protected Object getCMPFieldValue(Object instance, CMPFieldMetaData
fieldMetaData)
throws IllegalAccessException
{
- Field field = fieldMetaData.getField();
- return field.get(instance);
+ return fieldMetaData.getValue(instance);
}
protected void setCMPFieldValue(Object instance,
@@ -587,8 +606,15 @@
Object value)
throws IllegalAccessException
{
- Field field = fieldMetaData.getField();
- field.set(instance, value);
+ if (fieldMetaData.isNested()) {
+ // we have a nested field
+ fieldMetaData.set(instance, value);
+ }
+ else {
+ // the usual way
+ Field field = fieldMetaData.getField();
+ field.set(instance, value);
+ }
}
protected Object getPkFieldValue(Object pk, PkFieldMetaData pkFieldMetaData)
1.7 +3 -2
jboss/src/main/org/jboss/ejb/plugins/jaws/jdbc/JDBCLoadEntityCommand.java
Index: JDBCLoadEntityCommand.java
===================================================================
RCS file:
/products/cvs/ejboss/jboss/src/main/org/jboss/ejb/plugins/jaws/jdbc/JDBCLoadEntityCommand.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- JDBCLoadEntityCommand.java 2000/12/07 15:44:37 1.6
+++ JDBCLoadEntityCommand.java 2001/02/12 09:20:35 1.7
@@ -33,7 +33,8 @@
* @author <a href="mailto:[EMAIL PROTECTED]">Marc Fleury</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Joe Shevland</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Justin Forder</a>
- * @version $Revision: 1.6 $
+ * @author <a href="mailto:[EMAIL PROTECTED]">Dirk Zimmermann</a>
+ * @version $Revision: 1.7 $
*/
public class JDBCLoadEntityCommand
extends JDBCQueryCommand
@@ -111,7 +112,7 @@
setCMPFieldValue(ctx.getInstance(),
cmpField,
- getResultObject(rs, idx++,
cmpField.getField().getType()));
+ getResultObject(rs, idx++, cmpField));
}
// Store state to be able to do tuned updates