Setter method for collection mappings

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Setter method for collection mappings

Jose María Zaragoza
Hello:

I'm using MyBatis 3.4.6 and I would like to understand a strange
behaviour about setter method for collection properties

My

<resultMap id="codekeyMap" type="codekey" >
<id property="code" column="CODE"/>
<result property="key" column="KEY"/>
<collection property="description" ofType="language">
      <result property="cod" column="COD_IDIOMA"/>
      <result property="descripcion" column="DESCRIPCION"/>
</collection>
</resultMap>

and CodeKey bean is

private String code;
private String key;
private List<Language> description;


Well, if I do

public void setDescription(List<Language> l) {
     logger.info("description is empty:{}",  l.isEmpty());
      this.description = l;
}

is printed "description is empty:true"
But if I getDescription() , I get a not empty list
More strange is that if I remove the sentence "this.description = l",
the property description is not set !

How does it work ?

I would like to transform a result by using setter method , but
parameter is empty
And this only occurs with lists. For example, setCode(String code)
method receives a not null parameter

Thanks and regards

--
You received this message because you are subscribed to the Google Groups "mybatis-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Setter method for collection mappings

Erwan Letessier
The setter is invoked to initialize the list.
If you remove the assignment statement then the property is obviously not assigned. I even expect a NullPointer next as the list is filled bean.getDescription ().add (language)

What kind of transformation do you want to apply?


On Thu, Sep 27, 2018, 10:51 Jose María Zaragoza <[hidden email]> wrote:
Hello:

I'm using MyBatis 3.4.6 and I would like to understand a strange
behaviour about setter method for collection properties

My

<resultMap id="codekeyMap" type="codekey" >
<id property="code" column="CODE"/>
<result property="key" column="KEY"/>
<collection property="description" ofType="language">
      <result property="cod" column="COD_IDIOMA"/>
      <result property="descripcion" column="DESCRIPCION"/>
</collection>
</resultMap>

and CodeKey bean is

private String code;
private String key;
private List<Language> description;


Well, if I do

public void setDescription(List<Language> l) {
     logger.info("description is empty:{}",  l.isEmpty());
      this.description = l;
}

is printed "description is empty:true"
But if I getDescription() , I get a not empty list
More strange is that if I remove the sentence "this.description = l",
the property description is not set !

How does it work ?

I would like to transform a result by using setter method , but
parameter is empty
And this only occurs with lists. For example, setCode(String code)
method receives a not null parameter

Thanks and regards

--
You received this message because you are subscribed to the Google Groups "mybatis-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "mybatis-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Setter method for collection mappings

Jose María Zaragoza
El jue., 27 sept. 2018 a las 11:20, Erwan Letessier
(<[hidden email]>) escribió:
>
> The setter is invoked to initialize the list.

Thanks
So, why parameter list in setter method  is empty ?

> If you remove the assignment statement then the property is obviously not assigned. I even expect a NullPointer next as the list is filled bean.getDescription ().add (language)

I agree . But I don't understand why parameter list in setter method  is empty

>
> What kind of transformation do you want to apply>

I want to map List<Language> to Map<String, String>  ( Language class
has got two fields )
I know that you can do it with @MapKey annotation in mapper interface,
but this is a <collection> element inside <resultMap>


Regards

> On Thu, Sep 27, 2018, 10:51 Jose María Zaragoza <[hidden email]> wrote:
>>
>> Hello:
>>
>> I'm using MyBatis 3.4.6 and I would like to understand a strange
>> behaviour about setter method for collection properties
>>
>> My
>>
>> <resultMap id="codekeyMap" type="codekey" >
>> <id property="code" column="CODE"/>
>> <result property="key" column="KEY"/>
>> <collection property="description" ofType="language">
>>       <result property="cod" column="COD_IDIOMA"/>
>>       <result property="descripcion" column="DESCRIPCION"/>
>> </collection>
>> </resultMap>
>>
>> and CodeKey bean is
>>
>> private String code;
>> private String key;
>> private List<Language> description;
>>
>>
>> Well, if I do
>>
>> public void setDescription(List<Language> l) {
>>      logger.info("description is empty:{}",  l.isEmpty());
>>       this.description = l;
>> }
>>
>> is printed "description is empty:true"
>> But if I getDescription() , I get a not empty list
>> More strange is that if I remove the sentence "this.description = l",
>> the property description is not set !
>>
>> How does it work ?
>>
>> I would like to transform a result by using setter method , but
>> parameter is empty
>> And this only occurs with lists. For example, setCode(String code)
>> method receives a not null parameter
>>
>> Thanks and regards
>>
>> --
>> You received this message because you are subscribed to the Google Groups "mybatis-user" group.
>> To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
>> For more options, visit https://groups.google.com/d/optout.
>
> --
> You received this message because you are subscribed to the Google Groups "mybatis-user" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
> For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "mybatis-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Setter method for collection mappings

Erwan Letessier
Could be that result property="cod"  
Should be  id property="cod"

On Thu, Sep 27, 2018, 11:47 Jose María Zaragoza <[hidden email]> wrote:
El jue., 27 sept. 2018 a las 11:20, Erwan Letessier
(<[hidden email]>) escribió:
>
> The setter is invoked to initialize the list.

Thanks
So, why parameter list in setter method  is empty ?

> If you remove the assignment statement then the property is obviously not assigned. I even expect a NullPointer next as the list is filled bean.getDescription ().add (language)

I agree . But I don't understand why parameter list in setter method  is empty

>
> What kind of transformation do you want to apply>

I want to map List<Language> to Map<String, String>  ( Language class
has got two fields )
I know that you can do it with @MapKey annotation in mapper interface,
but this is a <collection> element inside <resultMap>


Regards

> On Thu, Sep 27, 2018, 10:51 Jose María Zaragoza <[hidden email]> wrote:
>>
>> Hello:
>>
>> I'm using MyBatis 3.4.6 and I would like to understand a strange
>> behaviour about setter method for collection properties
>>
>> My
>>
>> <resultMap id="codekeyMap" type="codekey" >
>> <id property="code" column="CODE"/>
>> <result property="key" column="KEY"/>
>> <collection property="description" ofType="language">
>>       <result property="cod" column="COD_IDIOMA"/>
>>       <result property="descripcion" column="DESCRIPCION"/>
>> </collection>
>> </resultMap>
>>
>> and CodeKey bean is
>>
>> private String code;
>> private String key;
>> private List<Language> description;
>>
>>
>> Well, if I do
>>
>> public void setDescription(List<Language> l) {
>>      logger.info("description is empty:{}",  l.isEmpty());
>>       this.description = l;
>> }
>>
>> is printed "description is empty:true"
>> But if I getDescription() , I get a not empty list
>> More strange is that if I remove the sentence "this.description = l",
>> the property description is not set !
>>
>> How does it work ?
>>
>> I would like to transform a result by using setter method , but
>> parameter is empty
>> And this only occurs with lists. For example, setCode(String code)
>> method receives a not null parameter
>>
>> Thanks and regards
>>
>> --
>> You received this message because you are subscribed to the Google Groups "mybatis-user" group.
>> To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
>> For more options, visit https://groups.google.com/d/optout.
>
> --
> You received this message because you are subscribed to the Google Groups "mybatis-user" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
> For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "mybatis-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "mybatis-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Setter method for collection mappings

Jose María Zaragoza
El jue., 27 sept. 2018 a las 16:03, Erwan Letessier
(<[hidden email]>) escribió:
>
> Could be that result property="cod"
> Should be  id property="cod"

Thanks , but it doesn't work.

It doesn't make sense for me

CASE 1:
public void setDescription(List<Language> l) {
     logger.info("description is empty:{}",  l.isEmpty());
      this.description = l;
}

returns "description is empty: true" and when I invoke getDescription
and it returns a not empty list

CASE 2:
public void setDescription(List<Language> l) {
     logger.info("description is empty:{}",  l.isEmpty());
}

returns "description is empty: true" and when I invoke getDescription
and it returns a empy list


I don't understand
Regards

>
> On Thu, Sep 27, 2018, 11:47 Jose María Zaragoza <[hidden email]> wrote:
>>
>> El jue., 27 sept. 2018 a las 11:20, Erwan Letessier
>> (<[hidden email]>) escribió:
>> >
>> > The setter is invoked to initialize the list.
>>
>> Thanks
>> So, why parameter list in setter method  is empty ?
>>
>> > If you remove the assignment statement then the property is obviously not assigned. I even expect a NullPointer next as the list is filled bean.getDescription ().add (language)
>>
>> I agree . But I don't understand why parameter list in setter method  is empty
>>
>> >
>> > What kind of transformation do you want to apply>
>>
>> I want to map List<Language> to Map<String, String>  ( Language class
>> has got two fields )
>> I know that you can do it with @MapKey annotation in mapper interface,
>> but this is a <collection> element inside <resultMap>
>>
>>
>> Regards
>>
>> > On Thu, Sep 27, 2018, 10:51 Jose María Zaragoza <[hidden email]> wrote:
>> >>
>> >> Hello:
>> >>
>> >> I'm using MyBatis 3.4.6 and I would like to understand a strange
>> >> behaviour about setter method for collection properties
>> >>
>> >> My
>> >>
>> >> <resultMap id="codekeyMap" type="codekey" >
>> >> <id property="code" column="CODE"/>
>> >> <result property="key" column="KEY"/>
>> >> <collection property="description" ofType="language">
>> >>       <result property="cod" column="COD_IDIOMA"/>
>> >>       <result property="descripcion" column="DESCRIPCION"/>
>> >> </collection>
>> >> </resultMap>
>> >>
>> >> and CodeKey bean is
>> >>
>> >> private String code;
>> >> private String key;
>> >> private List<Language> description;
>> >>
>> >>
>> >> Well, if I do
>> >>
>> >> public void setDescription(List<Language> l) {
>> >>      logger.info("description is empty:{}",  l.isEmpty());
>> >>       this.description = l;
>> >> }
>> >>
>> >> is printed "description is empty:true"
>> >> But if I getDescription() , I get a not empty list
>> >> More strange is that if I remove the sentence "this.description = l",
>> >> the property description is not set !
>> >>
>> >> How does it work ?
>> >>
>> >> I would like to transform a result by using setter method , but
>> >> parameter is empty
>> >> And this only occurs with lists. For example, setCode(String code)
>> >> method receives a not null parameter
>> >>
>> >> Thanks and regards
>> >>
>> >> --
>> >> You received this message because you are subscribed to the Google Groups "mybatis-user" group.
>> >> To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
>> >> For more options, visit https://groups.google.com/d/optout.
>> >
>> > --
>> > You received this message because you are subscribed to the Google Groups "mybatis-user" group.
>> > To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
>> > For more options, visit https://groups.google.com/d/optout.
>>
>> --
>> You received this message because you are subscribed to the Google Groups "mybatis-user" group.
>> To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
>> For more options, visit https://groups.google.com/d/optout.
>
> --
> You received this message because you are subscribed to the Google Groups "mybatis-user" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
> For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "mybatis-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re[2]: Setter method for collection mappings

Guy Rouillier-2
I have not read through the code to verify, but as Erwan already said,
the list first has to be initialized, and then iteratively populated as
rows are retrieved from the database.  Based on what you are observing,
I'm guessing the MyBatis code is creating the list first, assigning that
empty list to the bean, then looping over the results to populate the
list.  If you remove the assignment from setDescription, then the empty
list is never assigned, but MyBatis still has it so it can populate it
without error.  You'll never see it though, because you didn't assign it
to the class variable.

--
Guy Rouillier

------ Original Message ------
From: "Jose María Zaragoza" <[hidden email]>
To: [hidden email]
Sent: 9/27/2018 10:32:15 AM
Subject: Re: Setter method for collection mappings

>El jue., 27 sept. 2018 a las 16:03, Erwan Letessier
>(<[hidden email]>) escribió:
>>
>>Could be that result property="cod"
>>Should be  id property="cod"
>
>Thanks , but it doesn't work.
>
>It doesn't make sense for me
>
>CASE 1:
>public void setDescription(List<Language> l) {
>     logger.info("description is empty:{}",  l.isEmpty());
>      this.description = l;
>}
>
>returns "description is empty: true" and when I invoke getDescription
>and it returns a not empty list
>
>CASE 2:
>public void setDescription(List<Language> l) {
>     logger.info("description is empty:{}",  l.isEmpty());
>}
>
>returns "description is empty: true" and when I invoke getDescription
>and it returns a empy list
>
>
>I don't understand
>Regards
>
>>
>>On Thu, Sep 27, 2018, 11:47 Jose María Zaragoza <[hidden email]>
>>wrote:
>>>
>>>El jue., 27 sept. 2018 a las 11:20, Erwan Letessier
>>>(<[hidden email]>) escribió:
>>> >
>>> > The setter is invoked to initialize the list.
>>>
>>>Thanks
>>>So, why parameter list in setter method  is empty ?
>>>
>>> > If you remove the assignment statement then the property is
>>>obviously not assigned. I even expect a NullPointer next as the list
>>>is filled bean.getDescription ().add (language)
>>>
>>>I agree . But I don't understand why parameter list in setter method  
>>>is empty
>>>
>>> >
>>> > What kind of transformation do you want to apply>
>>>
>>>I want to map List<Language> to Map<String, String>  ( Language class
>>>has got two fields )
>>>I know that you can do it with @MapKey annotation in mapper
>>>interface,
>>>but this is a <collection> element inside <resultMap>
>>>
>>>
>>>Regards
>>>
>>> > On Thu, Sep 27, 2018, 10:51 Jose María Zaragoza
>>><[hidden email]> wrote:
>>> >>
>>> >> Hello:
>>> >>
>>> >> I'm using MyBatis 3.4.6 and I would like to understand a strange
>>> >> behaviour about setter method for collection properties
>>> >>
>>> >> My
>>> >>
>>> >> <resultMap id="codekeyMap" type="codekey" >
>>> >> <id property="code" column="CODE"/>
>>> >> <result property="key" column="KEY"/>
>>> >> <collection property="description" ofType="language">
>>> >>       <result property="cod" column="COD_IDIOMA"/>
>>> >>       <result property="descripcion" column="DESCRIPCION"/>
>>> >> </collection>
>>> >> </resultMap>
>>> >>
>>> >> and CodeKey bean is
>>> >>
>>> >> private String code;
>>> >> private String key;
>>> >> private List<Language> description;
>>> >>
>>> >>
>>> >> Well, if I do
>>> >>
>>> >> public void setDescription(List<Language> l) {
>>> >>      logger.info("description is empty:{}",  l.isEmpty());
>>> >>       this.description = l;
>>> >> }
>>> >>
>>> >> is printed "description is empty:true"
>>> >> But if I getDescription() , I get a not empty list
>>> >> More strange is that if I remove the sentence "this.description =
>>>l",
>>> >> the property description is not set !
>>> >>
>>> >> How does it work ?
>>> >>
>>> >> I would like to transform a result by using setter method , but
>>> >> parameter is empty
>>> >> And this only occurs with lists. For example, setCode(String code)
>>> >> method receives a not null parameter
>>> >>
>>> >> Thanks and regards
>>> >>
>>> >> --
>>> >> You received this message because you are subscribed to the Google
>>>Groups "mybatis-user" group.
>>> >> To unsubscribe from this group and stop receiving emails from it,
>>>send an email to [hidden email].
>>> >> For more options, visit https://groups.google.com/d/optout.
>>> >
>>> > --
>>> > You received this message because you are subscribed to the Google
>>>Groups "mybatis-user" group.
>>> > To unsubscribe from this group and stop receiving emails from it,
>>>send an email to [hidden email].
>>> > For more options, visit https://groups.google.com/d/optout.
>>>
>>>--
>>>You received this message because you are subscribed to the Google
>>>Groups "mybatis-user" group.
>>>To unsubscribe from this group and stop receiving emails from it,
>>>send an email to [hidden email].
>>>For more options, visit https://groups.google.com/d/optout.
>>
>>--
>>You received this message because you are subscribed to the Google
>>Groups "mybatis-user" group.
>>To unsubscribe from this group and stop receiving emails from it, send
>>an email to [hidden email].
>>For more options, visit https://groups.google.com/d/optout.
>
>--
>You received this message because you are subscribed to the Google
>Groups "mybatis-user" group.
>To unsubscribe from this group and stop receiving emails from it, send
>an email to [hidden email].
>For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "mybatis-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Re[2]: Setter method for collection mappings

Jose María Zaragoza
El jue., 27 sept. 2018 a las 23:56, Guy Rouillier
(<[hidden email]>) escribió:

>
> I have not read through the code to verify, but as Erwan already said,
> the list first has to be initialized, and then iteratively populated as
> rows are retrieved from the database.  Based on what you are observing,
> I'm guessing the MyBatis code is creating the list first, assigning that
> empty list to the bean, then looping over the results to populate the
> list.  If you remove the assignment from setDescription, then the empty
> list is never assigned, but MyBatis still has it so it can populate it
> without error.  You'll never see it though, because you didn't assign it
> to the class variable.

Thanks  Erwan  & Guy
I guess that for post-processing data retrieved from DB into bean must
be done out of bean class ( or at get() call time )

Regards


>
> --
> Guy Rouillier
>
> ------ Original Message ------
> From: "Jose María Zaragoza" <[hidden email]>
> To: [hidden email]
> Sent: 9/27/2018 10:32:15 AM
> Subject: Re: Setter method for collection mappings
>
> >El jue., 27 sept. 2018 a las 16:03, Erwan Letessier
> >(<[hidden email]>) escribió:
> >>
> >>Could be that result property="cod"
> >>Should be  id property="cod"
> >
> >Thanks , but it doesn't work.
> >
> >It doesn't make sense for me
> >
> >CASE 1:
> >public void setDescription(List<Language> l) {
> >     logger.info("description is empty:{}",  l.isEmpty());
> >      this.description = l;
> >}
> >
> >returns "description is empty: true" and when I invoke getDescription
> >and it returns a not empty list
> >
> >CASE 2:
> >public void setDescription(List<Language> l) {
> >     logger.info("description is empty:{}",  l.isEmpty());
> >}
> >
> >returns "description is empty: true" and when I invoke getDescription
> >and it returns a empy list
> >
> >
> >I don't understand
> >Regards
> >
> >>
> >>On Thu, Sep 27, 2018, 11:47 Jose María Zaragoza <[hidden email]>
> >>wrote:
> >>>
> >>>El jue., 27 sept. 2018 a las 11:20, Erwan Letessier
> >>>(<[hidden email]>) escribió:
> >>> >
> >>> > The setter is invoked to initialize the list.
> >>>
> >>>Thanks
> >>>So, why parameter list in setter method  is empty ?
> >>>
> >>> > If you remove the assignment statement then the property is
> >>>obviously not assigned. I even expect a NullPointer next as the list
> >>>is filled bean.getDescription ().add (language)
> >>>
> >>>I agree . But I don't understand why parameter list in setter method
> >>>is empty
> >>>
> >>> >
> >>> > What kind of transformation do you want to apply>
> >>>
> >>>I want to map List<Language> to Map<String, String>  ( Language class
> >>>has got two fields )
> >>>I know that you can do it with @MapKey annotation in mapper
> >>>interface,
> >>>but this is a <collection> element inside <resultMap>
> >>>
> >>>
> >>>Regards
> >>>
> >>> > On Thu, Sep 27, 2018, 10:51 Jose María Zaragoza
> >>><[hidden email]> wrote:
> >>> >>
> >>> >> Hello:
> >>> >>
> >>> >> I'm using MyBatis 3.4.6 and I would like to understand a strange
> >>> >> behaviour about setter method for collection properties
> >>> >>
> >>> >> My
> >>> >>
> >>> >> <resultMap id="codekeyMap" type="codekey" >
> >>> >> <id property="code" column="CODE"/>
> >>> >> <result property="key" column="KEY"/>
> >>> >> <collection property="description" ofType="language">
> >>> >>       <result property="cod" column="COD_IDIOMA"/>
> >>> >>       <result property="descripcion" column="DESCRIPCION"/>
> >>> >> </collection>
> >>> >> </resultMap>
> >>> >>
> >>> >> and CodeKey bean is
> >>> >>
> >>> >> private String code;
> >>> >> private String key;
> >>> >> private List<Language> description;
> >>> >>
> >>> >>
> >>> >> Well, if I do
> >>> >>
> >>> >> public void setDescription(List<Language> l) {
> >>> >>      logger.info("description is empty:{}",  l.isEmpty());
> >>> >>       this.description = l;
> >>> >> }
> >>> >>
> >>> >> is printed "description is empty:true"
> >>> >> But if I getDescription() , I get a not empty list
> >>> >> More strange is that if I remove the sentence "this.description =
> >>>l",
> >>> >> the property description is not set !
> >>> >>
> >>> >> How does it work ?
> >>> >>
> >>> >> I would like to transform a result by using setter method , but
> >>> >> parameter is empty
> >>> >> And this only occurs with lists. For example, setCode(String code)
> >>> >> method receives a not null parameter
> >>> >>
> >>> >> Thanks and regards
> >>> >>
> >>> >> --
> >>> >> You received this message because you are subscribed to the Google
> >>>Groups "mybatis-user" group.
> >>> >> To unsubscribe from this group and stop receiving emails from it,
> >>>send an email to [hidden email].
> >>> >> For more options, visit https://groups.google.com/d/optout.
> >>> >
> >>> > --
> >>> > You received this message because you are subscribed to the Google
> >>>Groups "mybatis-user" group.
> >>> > To unsubscribe from this group and stop receiving emails from it,
> >>>send an email to [hidden email].
> >>> > For more options, visit https://groups.google.com/d/optout.
> >>>
> >>>--
> >>>You received this message because you are subscribed to the Google
> >>>Groups "mybatis-user" group.
> >>>To unsubscribe from this group and stop receiving emails from it,
> >>>send an email to [hidden email].
> >>>For more options, visit https://groups.google.com/d/optout.
> >>
> >>--
> >>You received this message because you are subscribed to the Google
> >>Groups "mybatis-user" group.
> >>To unsubscribe from this group and stop receiving emails from it, send
> >>an email to [hidden email].
> >>For more options, visit https://groups.google.com/d/optout.
> >
> >--
> >You received this message because you are subscribed to the Google
> >Groups "mybatis-user" group.
> >To unsubscribe from this group and stop receiving emails from it, send
> >an email to [hidden email].
> >For more options, visit https://groups.google.com/d/optout.
>
> --
> You received this message because you are subscribed to the Google Groups "mybatis-user" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
> For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "mybatis-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.