Domanda

Sono nuovo di iBatis e sto lottando con gli elementi e.

voglio iterare su una lista di istanze libro (diciamo) che vengono passate come un HashMap: MyParameters. La lista si chiamerà listOfBooks.

La clausola della dichiarazione complessiva SQL sarà quindi simile a questa:

<iterate prepend="AND" property="MyParameters.listOfBooks" conjunction="AND" open="(" close=")">
...
</iterate>

Ho anche bisogno di produrre SQL diversa all'interno degli elementi iterazione a seconda che una proprietà di ogni istanza libro nella lista 'listOfBooks' è nullo, oppure no.

Così, ho bisogno di un qualcosa di dichiarazione come questa:

 <iterate prepend="AND" property="MyParameters.listOfBooks" conjunction="AND" open="(" close=")">
        <isNull property="MyParameter.listOfBooks.title">
<!-- SQL clause #1 here -->

        </isNull>
  <isNotNull property="MyParameter.listOfBooks.title">
<!-- SQL clause #2 here -->
 </isNotNull>

Quando faccio questo ricevo un messaggio di errore che indica che non v'è alcuna proprietà "leggibile" di nome 'title' nella mia classe Libro. Tuttavia, ogni istanza libro ha contenere un titolo di proprietà, quindi sono confuso! Posso assuem solo che ho managled la sintassi nel tentativo di individuare il titolo di particolare istanza Libro in listOfBooks. Sto lottando per trovare la corretta tecnica per cercare di raggiungere questo obiettivo. Se qualcuno può consigliare una via da seguire sarei grato.

Grazie

È stato utile?

Soluzione

Suppongo

property="MyParameter.listOfBooks.title"

indica Ibatis di ricercare una proprietà title nell'oggetto MyParameter.listOfBooks, che è in realtà un elenco. Se non si desidera che, vuoi per ricerca che la proprietà in ogni elemento della lista (il 'puntatore', diciamo).

In Ibatis, all'interno del tag <iterate>, il MyParameter.listOfBooks[] sintassi viene utilizzato come riferimento quell'elemento anziché la lista completa ( ref ), non so se funzionerà all'interno di un attributo di tag, si potrebbe provare: o

<isNull property="MyParameter.listOfBooks[].title">

o forse anche

<isNull property="title">

A proposito, non so il DB che si sta utilizzando, ma sono a conoscenza del rel funzione COALESCE ?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top