【问题标题】:Spring Roo does not generate CRUDSpring Roo 不生成 CRUD
【发布时间】:2010-10-31 22:44:46
【问题描述】:

在 Spring Roo 中,我使用 this tutorial 和我的自定义 xsd 来生成对象。
之后我使用命令 controller all ~.web,生成了控制器但没有 CRUD 功能。

如果我在 Roo 控制器中使用 CRUD 功能制作手动对象,则会生成。知道问题出在哪里吗?

在我的情况下,架构文件 xsd 对于 REST 数据交换很重要。

【问题讨论】:

    标签: java jaxb crud spring-roo


    【解决方案1】:

    您所指的教程确实解释了如何基于提供的 xml Schema 创建 Java(域)模型,但当前 controller all ~.web 命令(版本 1.1.0 ) 只为实际的 Roo(数据库)实体创建控制器和相应的 CRUD 函数。由于生成的 Java 类未标记为 Roo 实体,控制器命令不会创建您预期的 CRUD 命令,正如您所说,它将为手动创建的实体执行这些操作,因为这些实体被标记为 Roo 实体(请参阅@RooEntity注释)。

    正如本教程所述,当您使用 Spring Roo jaxb 插件时,您需要手动更新控制器和视图 (*.jspx) 文件以实现 CRUD 功能。我知道,通过检查论坛和 Jira 问题,目前有一些关于让 Spring Roo 为普通(非实体)bean 创建基本 CRUD 功能的想法(参见问题 ROO-344 和它相关的 ROO-277 问题),但是这些目前只是想法,很可能不会在不久的将来实施。因此,当使用 XML 模式作为 Spring Roo 域模型的基础时,您仍然需要进行大量手动编码才能拥有基本的 CRUD 应用程序,而不是使用数据库作为生成域模型的基础,因为它基本上是在 Roo shell 中执行几个命令,然后你就完成了。

    如果您的 XML 架构只是您的域模型的定义,并且您确实希望应用程序将数据存储在数据库中并从数据库中检索,而不是调用 REST Web 服务来检索和存储更改,您可能尝试使用 jaxb 插件生成模型,然后对生成的类进行注释,但由于我自己之前没有这样做过,我不确定这是否可行,但可能值得一试。

    【讨论】:

    • 感谢蒂姆的回答。由于这个问题是不久前提出的,因此我的项目朝着不同的方向发展。现在我也看到教程的作者回复了。 tzolov.blogspot.com/2010/05/…
    【解决方案2】:

    Spring Roo 在 .java 源文件旁边生成 AspectJ (.aj) 文件。因此,您不会在源文件中看到这些方法。它们在 .aj 文件中,但在编译后出现在生成的 .class 文件中。

    【讨论】:

    • Tnx 寻求答案。是的,通常 Roo 会生成 .aj 文件,但不会使用从 xsd 生成类的插件 jaxb xsd 编译器设置。主要问题是没有生成类的 CRUD 视图。知道为什么吗?
    • 如果我们没有看到 CRUD 操作,这是否意味着我们应该在控制器中对数据进行任何验证/格式化?不确定这里的最佳做法是什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-04
    • 1970-01-01
    • 2011-05-13
    • 1970-01-01
    • 1970-01-01
    • 2014-12-10
    相关资源
    最近更新 更多