如果pojo类中有多对一,一对多关系时,自动生成的sample-data.sql会有问题
因此要修改sample-data.xdt
加黑的部分为增加,划线的为删除
<XDtTagDef:tagDef namespace="MethodEx" handler="org.example.antbook.xdoclet.MethodExTagsHandler"/> <!--<XDtMethodEx:className/>-START-->
<XDtClass:forAllClasses abstract="true" sort="true">
<XDtClass:ifHasClassTag tagName="hibernate.class" paramName="table" superclasses="false">
<table name='<XDtClass:classTagValue tagName="hibernate.class" paramName="table"/>'>
<XDtMethodEx:forAllMethods>
<XDtMethodEx:ifHasMethodTag tagName="hibernate.id"><column><XDtMethodEx:ifHasMethodTag tagName="hibernate.id" paramName="column"><XDtMethodEx:methodTagValue tagName="hibernate.id" paramName="column"/></XDtMethodEx:ifHasMethodTag><XDtMethodEx:ifDoesntHaveMethodTag tagName="hibernate.id" paramName="column"><XDtMethodEx:propertyName/></XDtMethodEx:ifDoesntHaveMethodTag></column></XDtMethodEx:ifHasMethodTag>
<XDtMethodEx:ifHasMethodTag tagName="hibernate.property"><column><XDtMethodEx:ifHasMethodTag tagName="hibernate.property" paramName="column"><XDtMethodEx:methodTagValue tagName="hibernate.property" paramName="column"/></XDtMethodEx:ifHasMethodTag><XDtMethodEx:ifDoesntHaveMethodTag tagName="hibernate.property" paramName="column"><XDtMethodEx:propertyName/></XDtMethodEx:ifDoesntHaveMethodTag></column></XDtMethodEx:ifHasMethodTag>
<XDtMethodEx:ifHasMethodTag tagName="hibernate.column"><column><XDtMethodEx:ifHasMethodTag tagName="hibernate.column" paramName="name"><XDtMethodEx:methodTagValue tagName="hibernate.column" paramName="name"/></XDtMethodEx:ifHasMethodTag></column></XDtMethodEx:ifHasMethodTag>
<XDtMethodEx:ifHasMethodTag tagName="hibernate.version"><column>version</column></XDtMethodEx:ifHasMethodTag>
</XDtMethodEx:forAllMethods>
<row>
<XDtMethodEx:forAllMethods>
<XDtMethodEx:ifHasMethodTag tagName="hibernate.id">
<value>1</value>
</XDtMethodEx:ifHasMethodTag>
<XDtMethodEx:ifHasMethodTag tagName="hibernate.property">
<value><XDtMethodEx:randomValueForDbUnit/></value>
</XDtMethodEx:ifHasMethodTag>
<XDtMethodEx:ifHasMethodTag tagName="hibernate.column">
<value><XDtMethodEx:randomValueForDbUnit/></value>
</XDtMethodEx:ifHasMethodTag>
<XDtMethodEx:ifHasMethodTag tagName="hibernate.version">
<value>1</value>
</XDtMethodEx:ifHasMethodTag>
</XDtMethodEx:forAllMethods>
</row>
<row>
<XDtMethodEx:forAllMethods>
<XDtMethodEx:ifHasMethodTag tagName="hibernate.id">
<value>2</value>
</XDtMethodEx:ifHasMethodTag>
<XDtMethodEx:ifHasMethodTag tagName="hibernate.property">
<value><XDtMethodEx:randomValueForDbUnit/></value>
</XDtMethodEx:ifHasMethodTag>
<XDtMethodEx:ifHasMethodTag tagName="hibernate.column">
<value><XDtMethodEx:randomValueForDbUnit/></value>
</XDtMethodEx:ifHasMethodTag>
<XDtMethodEx:ifHasMethodTag tagName="hibernate.version">
<value>1</value>
</XDtMethodEx:ifHasMethodTag>
</XDtMethodEx:forAllMethods>
</row>
<row>
<XDtMethodEx:forAllMethods>
<XDtMethodEx:ifHasMethodTag tagName="hibernate.id">
<value>3</value>
</XDtMethodEx:ifHasMethodTag>
<XDtMethodEx:ifHasMethodTag tagName="hibernate.property">
<value><XDtMethodEx:randomValueForDbUnit/></value>
</XDtMethodEx:ifHasMethodTag>
<XDtMethodEx:ifHasMethodTag tagName="hibernate.column">
<value><XDtMethodEx:randomValueForDbUnit/></value>
</XDtMethodEx:ifHasMethodTag>
<XDtMethodEx:ifHasMethodTag tagName="hibernate.version">
<value>1</value>
</XDtMethodEx:ifHasMethodTag>
</XDtMethodEx:forAllMethods>
</row>
</table>
</XDtClass:ifHasClassTag>
<XDtClass:ifHasClassTag tagName="hibernate.joined-subclass" paramName="table" superclasses="false">
<table name='<XDtClass:classTagValue tagName="hibernate.joined-subclass" paramName="table"/>'>
<column><XDtClass:classTagValue tagName="hibernate.joined-subclass-key" paramName="column"/></column>
<XDtMethodEx:forAllMethods>
<XDtMethodEx:ifHasMethodTag tagName="hibernate.property"><column><XDtMethodEx:ifHasMethodTag tagName="hibernate.property" paramName="column"><XDtMethodEx:methodTagValue tagName="hibernate.property" paramName="column"/></XDtMethodEx:ifHasMethodTag><XDtMethodEx:ifDoesntHaveMethodTag tagName="hibernate.property" paramName="column"><XDtMethodEx:propertyName/></XDtMethodEx:ifDoesntHaveMethodTag></column></XDtMethodEx:ifHasMethodTag>
<XDtMethodEx:ifHasMethodTag tagName="hibernate.column"><column><XDtMethodEx:ifHasMethodTag tagName="hibernate.column" paramName="name"><XDtMethodEx:methodTagValue tagName="hibernate.column" paramName="name"/></XDtMethodEx:ifHasMethodTag></column></XDtMethodEx:ifHasMethodTag>
<XDtMethodEx:ifHasMethodTag tagName="hibernate.version"><column>version</column></XDtMethodEx:ifHasMethodTag>
</XDtMethodEx:forAllMethods>
<row>
<value>1</value>
<XDtMethodEx:forAllMethods>
<XDtMethodEx:ifHasMethodTag tagName="hibernate.property">
<value><XDtMethodEx:randomValueForDbUnit/></value>
</XDtMethodEx:ifHasMethodTag>
<XDtMethodEx:ifHasMethodTag tagName="hibernate.column">
<value><XDtMethodEx:randomValueForDbUnit/></value>
</XDtMethodEx:ifHasMethodTag>
<XDtMethodEx:ifHasMethodTag tagName="hibernate.version">
<value>1</value>
</XDtMethodEx:ifHasMethodTag>
</XDtMethodEx:forAllMethods>
</row>
<row>
<value>2</value>
<XDtMethodEx:forAllMethods>
<XDtMethodEx:ifHasMethodTag tagName="hibernate.property">
<value><XDtMethodEx:randomValueForDbUnit/></value>
</XDtMethodEx:ifHasMethodTag>
<XDtMethodEx:ifHasMethodTag tagName="hibernate.column">
<value><XDtMethodEx:randomValueForDbUnit/></value>
</XDtMethodEx:ifHasMethodTag>
<XDtMethodEx:ifHasMethodTag tagName="hibernate.version">
<value>1</value>
</XDtMethodEx:ifHasMethodTag>
</XDtMethodEx:forAllMethods>
</row>
<row>
<value>3</value>
<XDtMethodEx:forAllMethods>
<XDtMethodEx:ifHasMethodTag tagName="hibernate.property">
<value><XDtMethodEx:randomValueForDbUnit/></value>
</XDtMethodEx:ifHasMethodTag>
<XDtMethodEx:ifHasMethodTag tagName="hibernate.column">
<value><XDtMethodEx:randomValueForDbUnit/></value>
</XDtMethodEx:ifHasMethodTag>
<XDtMethodEx:ifHasMethodTag tagName="hibernate.version">
<value>1</value>
</XDtMethodEx:ifHasMethodTag>
</XDtMethodEx:forAllMethods>
</row>
</table>
</XDtClass:ifHasClassTag>
</XDtClass:forAllClasses>
<!--<XDtMethodEx:className/>-END-->
</dataset>
大家也可以修改其它的模板文件,生成自已需要的文件