Карта с несколькими значениями в весеннем хеше - PullRequest
0 голосов
/ 22 мая 2018

Можно ли добавить несколько значений на карту весной, например, у меня есть нижеприведенная карта весны

 <property name="abcMap">
     <map>
         <entry key="615000" value="def"/>
     </map>
 </property>

Что я пытаюсь достичь, как показано ниже

<property name="abcMap">
    <map>
        <entry key="615000" value="def" value="abc"/>
    </map>
</property>

Посоветуйте, пожалуйста, как мы можем добиться того же весной?

Ответы [ 4 ]

0 голосов
/ 22 мая 2018

Было бы здорово использовать MultiValueMap.К сожалению, они не поддерживаются spring xsd .Вот соответствующий отрывок:

<xsd:group name="collectionElements">
  <xsd:sequence>
    <xsd:element ref="description" minOccurs="0"/>
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element ref="bean"/>
      <xsd:element ref="ref"/>
      <xsd:element ref="idref"/>
      <xsd:element ref="value"/>
      <xsd:element ref="null"/>
      <xsd:element ref="list"/>
      <xsd:element ref="set"/>
      <xsd:element ref="map"/>
      <xsd:element ref="props"/>
      <xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:choice>
  </xsd:sequence>
</xsd:group>

Таким образом, как другие предложили, вы можете использовать карту со списком в качестве значения.

0 голосов
/ 22 мая 2018

Значение должно быть списком, если вы хотите сохранить несколько значений для данного ключа, например:

<property name="abcMap">
    <map>
        <entry>
            <key>
                <value>615000</value>
            </key>
            <list>
                <value>def</value>
                <value>abc</value>
            </list>
        </entry>
    </map>
</property>
0 голосов
/ 22 мая 2018

Сначала нужно создать список.Затем этот список может быть вставлен в карту.

<list id="list1">
  <value>abc</value>
  <value>def</value>

<map id="emailMap" value-type="java.util.List">
  <!-- Map between String key and List -->
  <entry key="entry1" value-ref="list1" />
  <entry key="entry2" value-ref="list2" />
<map>

Затем используйте эту Карту в любом вашем бобе, например:

    <bean id="myBean" class="com.sample.beans">
      <property name="emailMap" ref="emailMap" />
   </bean>
0 голосов
/ 22 мая 2018

По определению карта не может иметь два значения для одного и того же ключа (если это был Java, вы могли бы поместить их в список, но это не так).

В качестве решения вы можете объединитьони разделяются определенным символом, таким как «,», или используют разные ключи для каждого значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...