I created a DocumentMapBuilder (in relation with a table DOCUMENT in my
database).
This classe has a method :
getDocument_Name
{
return getTableName ()+".name";
}
I add the TableMap to the databaseMap with:
tMap.addColumn ( getDocument_Name(), string); // like :
addColumn("DOCUMENT.name", string);
In another class, I create the criteria with
...
criteria.addOrderByColumn(DOCUMENT_NAME);
...
and I send this criteria to BasePeer.doSelect(criteria)
But there is an error appering because it couldn't retreive the column map
with "name" but with "DOCUMENT.name"
The code in BasePeer is :
...
if ( orderBy != null && orderBy.size() > 0)
{
// Check for each String/Character column and apply
toUpperCase()
for (int i=0; i<orderBy.size(); i++)
{
String orderByColumn = orderBy.get(i);
String table =
orderByColumn.substring(0,orderByColumn.indexOf('.') );
String columnName =
rderByColumn.substring( orderByColumn.indexOf('.')+1 );
ColumnMap column =
bMap.getTable(table).getColumn( columnName ); // has
problem in my case
if ( column.getType() instanceof String )
// null pointer exception here
orderByClause.add( db.toUpperCase(orderByColumn) );
}
else
{
orderByClause.add(orderByColumn);
}
}
}
in my case, if I change
ColumnMap column = dbMap.getTable(table).getColumn( columnName );
by
ColumnMap column = dbMap.getTable(table).getColumn( orderByColumn );
it is OK.
For info, scrab.tigris.org uses the same method. I don't know how they
resolve this problem.
Is there any thing to change in my code (or in BasePeer code) ?
Regards,
Herv�
------------------------------------------------------------
To subscribe: [EMAIL PROTECTED]
To unsubscribe: [EMAIL PROTECTED]
Problems?: [EMAIL PROTECTED]