Hi,

We are trying to use iBATIS/Ibator on a database that is traditionally updated 
via optimistic locking.
Doing so we have come across a problem with our where clauses and the code that 
is generated
by Ibator, because most fields in our database are of type CHAR. In Ibator 
there is a supported
property called "trimStrings" on the <javaModelGenerator> element, however this 
only trim strings
on the right side of the where clause expressions (e.g. WHERE MYFIELD = rtrim(' 
    Hello  ')) and
we need the left side to be trimmed as well. We can of cause changed the Ibator 
generated code
but that would be a manually process that would be overwritten next time we run 
Ibator.

We have tried to look at the possibilities for extending Ibator via Plug-In's 
or the like, but have not
found a good point of entry for this yet. However we have localized the place 
in the Ibator code
that we could change to solve this - it is ExampleGenerator.java:

-- snip --
private Method getSingleValueMethod(IntrospectedColumn introspectedColumn,
 String nameFragment, String operator) {

       ...


        sb.append(introspectedColumn.getAliasedActualColumnName());

        sb.append(' ');

        sb.append(operator);

        sb.append("\", "); //$NON-NLS-1$



        ...
    }
-- snip --

should be changed to

-- snip --
private Method getSingleValueMethod(IntrospectedColumn introspectedColumn,
 String nameFragment, String operator) {
       ...

        sb.append("rtrim(" + introspectedColumn.getAliasedActualColumnName()+ 
")");
        sb.append(' ');
        sb.append(operator);
        sb.append("\", "); //$NON-NLS-1$

        ...
    }
-- snip --

Is this possible through a plug-in or otherwise?

Any information that can help us solve this will be highly appreciated!


Venlig hilsen / Kind regards

Anders Andersen

IT Consultant - IT afdelingen / IT department
Copenhagen Airports A/S
Lufthavnsboulevarden 6, DK-2770 Kastrup
Tel./Phone no.: +45 60660306
e-mail: [email protected]

Reply via email to