如果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>
大家也可以修改其它的模板文件,生成自已需要的文件
分享到:
相关推荐
【标题】:“模板生成工具”指的是使用特定技术或框架创建代码模板的软件工具,它可以模仿类似AppFuse的XDT模板。AppFuse是一个开源项目,它提供了快速开发Web应用的基础架构,而XDT(XML Document Transform)是...
替换 `<选择的模板>` 为下载的模板名称,如 `appfuse-basic`,`appfuse-minimal` 等,`<对应版本>` 是你下载的 AppFuse 版本号。 **4. 编译与运行** 进入新创建的项目目录,使用 Maven 编译并运行项目: ``` cd my...
5. **视图层(View Layer)**:可以是JSP页面,使用Tiles或FreeMarker模板引擎渲染。 6. **安全(Security)**:AppFuse集成了Spring Security(以前称为Acegi),提供身份验证和授权功能。 7. **国际化...
`-DgroupId` 和 `-DartifactId` 分别指定了项目的 groupId 和 artifactId,这些值可以按需修改。 **3. 加速 Maven 构建** 如果网络条件不佳,Maven 构建可能会非常慢,因为它需要从远程仓库下载大量依赖。为了...
总的来说,AppFuse通过提供预配置的模板和集成的开发工具,降低了开发复杂性,使得开发者可以更加专注于业务逻辑,而不是基础架构的搭建。这对于快速启动新项目或学习现代Java Web开发技术是非常有价值的。
文档和教程最早于2003年11月发布,自那以后,AppFuse不断更新和完善,成为了java.net网站上最受欢迎的项目之一。 #### 三、功能特点 AppFuse提供了许多有用的功能,帮助开发者快速搭建和测试应用程序: 1. **容器...
通常,AppFuse提供了不同框架的模板,根据你的需求选择合适的模板。 步骤3:创建新项目。使用Maven的archetype插件,我们可以快速生成一个基于AppFuse的新项目。在命令行中运行以下命令: ``` mvn archetype:...
在AppFuse中,这些框架通过外部引用的方式被整合到项目中,这意味着开发者可以在不修改核心代码的情况下,通过更改配置文件来切换不同的CSS框架。 "对项目的页面布局自动构建"指的是AppFuse能够自动生成基本的HTML...
这种方式允许开发者在不修改原有代码的情况下,只需更改配置就能切换不同的实现,实现了松耦合。 AppFuse 这样的框架为开发者提供了便捷的起点,它简化了集成多种技术的复杂性,使得开发者能够快速搭建一个具备基础...
然后,利用AppFuse的模板工程生成基本的项目结构,包括模型(Model)、视图(View)和控制器(Controller)文件。接着,根据业务逻辑,编写对应的Java代码,配置相关的XML文件,实现各模块的功能。 对于用户管理,...
XDoclet还可以生成Struts的Action和JSP页面的骨架,为开发者提供一个基本的模板,以便快速开发用户界面。 3. **创建测试PersonAction的PersonActionTest** 创建一个JUnit测试类PersonActionTest,测试Struts ...
1. **快速原型**:AppFuse提供了一个基础的模板,开发者只需根据需求修改即可,大大缩短了项目的初始化阶段。 2. **标准化**:AppFuse遵循最佳实践,如Maven构建系统,使得项目的结构和配置文件保持一致,便于团队...
06年时的appfuse,学习SSH架构的经典入门框架。相对比较老的资料,可以欣赏一下当时的架构,向牛人致敬
AppFuse 是一个开源项目,旨在简化Java Web应用程序的开发。它提供了一个基础架构,开发者可以在此基础上快速构建安全、可扩展的应用程序。AppFuse 2.1 版本是该项目的一个较早版本,但仍然包含了现代Web开发的核心...
AppFuse是一个集成了众多当前最流行开源框架与工具(包括Hibernate、ibatis、Struts、Spring、DBUnit、Maven、Log4J、Struts Menu、Xdoclet、SiteMesh、OSCache、JUnit、JSTL等(现在还有lucene的,无敌了))于一身的...
1. **选择模板**:根据你的项目需求,从 AppFuse 提供的多种模板中挑选适合的类型。 2. **生成项目**:使用 Maven 的 archetype:generate 命令,输入相应的 archetype 编号,生成项目结构。 3. **配置项目**:...
AppFuse 是一个开源项目,它提供了快速开发Java Web应用程序的基础框架。这个框架集成了Spring、Hibernate和Struts等主流技术,使得开发者能够迅速构建出符合MVC架构的应用。在最新的版本2.1.0-M2中,AppFuse 提供了...