【问题标题】:Spring MVC - collection of stringSpring MVC - 字符串的集合
【发布时间】:2012-12-12 15:09:10
【问题描述】:

我想要一个包含字符串值集合的实体,它存储可以是字母数字的收据编号,因此需要存储字符串。如何使用 spring roo 将这样的字段添加到实体中?

我试过了

field set --fieldName controlNumbers --type java.lang.String --class ~.model.Receipt 但是在项目中找不到指定类型的错误,我需要先创建它。

然后我尝试将下面的代码直接注入实体并保存它并更新了 aj 文件。但是,当我运行 tomcat 时,这也有问题。

   private Set<String> controlNumbers = new HashSet<String>();

也看到有人这样做

@org.hibernate.annotations.CollectionOfElements
private Set<String> controlNumbers = new HashSet<String>();

但你猜怎么着,CollectionOfElements 已被弃用。

请帮忙。

【问题讨论】:

    标签: spring spring-mvc spring-security spring-roo spring-webflow


    【解决方案1】:

    我最近不得不实现类似的东西,虽然我没有使用 spring roo,但我的实体需要存储一个 Map,并且我的实体中的以下内容起到了作用:

    @ElementCollection(fetch = FetchType.EAGER)
    @MapKeyColumn(name = "CONFIG_KEY")
    @Column(name = "CONFIG_VALUE")
    @CollectionTable(name = "CONFIG_MAPPING")
    private Map<String, String> configAttributes;
    

    不确定这是否会有所帮助,但我想我会分享

    【讨论】:

      【解决方案2】:

      你不应该指定 --class

      如果您希望实体的 controlNumbers 字段是字符串的集合,请不要将 --class 指定为 Receipt,只需将 --type 保留为 java.lang.String。如果您希望它是 Receipts 的集合,则不要指定 java.lang.String。

      此外,您的 Receipt 实体必须已经存在才能正常工作。您不能引用尚不存在的类型。

      一旦你的 ~.model.Receipt 对象存在,你应该能够运行:

      字段集 --fieldName controlNumbers --type ~.model.Receipt

      参考http://static.springsource.org/spring-roo/reference/html-single/#command-index-field-set 更多示例。

      【讨论】:

      • 我都试过了,没有指定类,roo怎么知道把字段放在哪里?这产生了“java.lang.IllegalStateException: Failed to convert '*' to type JavaType for opti on 'class' Unknown type;请将类型指示为命令选项(即--xxxx)”。我尝试了 field set --fieldName controlNumbers --type java.lang.String 没有“--class”,这也产生了错误
      • 如果你的 ~.model.Receipt 存在,字段集 --fieldName 收据 --type ~.model.Receipt 就是你所需要的创建一个收据 jpa 实体然后运行你的字段集。
      • 或创建一个 controlnumbers jpa 实体并让您的集合引用该实体
      猜你喜欢
      • 2011-02-19
      • 1970-01-01
      • 2016-07-09
      • 1970-01-01
      • 2015-07-24
      • 1970-01-01
      • 1970-01-01
      • 2021-11-09
      • 1970-01-01
      相关资源
      最近更新 更多