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 <myrddi...@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.