ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Julien D <myrddi...@hotmail.com>
Subject Re: Ibator erasing custom annotations on private field
Date Wed, 07 Jan 2009 13:09:54 GMT

Indeed I'm using the eclipse pluggin. I had the same thinking about wrinting
a pluggin and overwriting the modelfieldGenerated method. Something like if
introspectedColumn.isNullable so add a @Required Annotation. But I don't
know if I can do that with a @MaxLength annotation because I need to give
the maxLength in parameter. Do you think something like that will work :

@Override
public boolean modelFieldGenerated(Field field,TopLevelClass topLevelClass,
IntrospectedColumn introspectedColumn,IntrospectedTable introspectedTable,
ModelClassType modelClassType) {
		
	if(introspectedColumn.isNullable()) {
		field.addAnnotation("@Required");
	}
		
	int maxLength = introspectedColumn.getLength();
	StringBuffer maxLengthAnnotation = new StringBuffer();
	maxLengthAnnotation.append("@MaxLength")
		.append("(value=")
		.append(maxLength).append(")");
		
	field.addAnnotation(maxLengthAnnotation.toString());
		
	return true;
}




Dan Turkenkopf wrote:
> 
> Hi Julien,
> 
> I'm assuming since you mention the JavaFileMerger that you're using the
> Eclipse plugin?
> 
> I'm not that familiar with how the JavaFileMerger works, but if it's
> anything like how the SQLMapGenerators work in the standalone version of
> Ibator, it's going to completely regenerate anything that it originally
> generated (indicated by the comment and the @ibatorgenerated tag).  So it
> will overwrite your annoation you added.  I think the merge tools will
> keep
> any additional fields or methods that were not originally generated, but
> recreate the ones that Ibator is responsible for.
> 
> Jeff or someone else can correct me if it's different inside Eclipse.
> 
> One way to make sure this sticks would be to create a plugin that adds the
> proper annotation for you.  You'd want to override the modelFieldGenerated
> method from IbatorPluginAdapter.
> 
> Hope this helps,
> 
> Dan Turkenkopf
> 
> On Wed, Jan 7, 2009 at 4:01 AM, Julien D <myrddin22@hotmail.com> wrote:
> 
>>
>> Hi everybody,
>>
>> I'm adding annotations in some of my generated java object model but the
>> JavaFileMerger erase it each time I'm runnig Ibator. Does someone see a
>> way
>> around that ?
>>
>> Here is an example:
>>
>> public class Order implements Serializable {
>>
>>            /**
>>             * This field was generated by Apache iBATIS ibator. This
>> field
>> corresponds to the database
>>             * column SPF_ORDER.ID_ORDER
>>             * @ibatorgenerated
>>             */
>>            @Required
>>            private String orderID;
>>            ...
>> }
>>
>> In the meantime I've tried to insert the annotation above the commentary
>> but
>> it's not working either. In that case Ibator will create a duplicate
>> field
>> at the end of the file.
>>
>> Thanks
>>
>> Julien
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Ibator-erasing-custom-annotations-on-private-field-tp21327128p21327128.html
>> Sent from the iBATIS - User - Java mailing list archive at Nabble.com.
>>
>>
> 
> 

-- 
View this message in context: http://www.nabble.com/Ibator-erasing-custom-annotations-on-private-field-tp21327128p21331031.html
Sent from the iBATIS - User - Java mailing list archive at Nabble.com.


Mime
View raw message