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:58:06 GMT

I've tried that and it's working. I can have auto-generated annotation based
on the table constraints.


Julien D wrote:
> 
> 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-tp21327128p21331790.html
Sent from the iBATIS - User - Java mailing list archive at Nabble.com.


Mime
View raw message