2016-12-06 2 views
0
@Select("Select distinct X from Table where X= #{param}") 
@Results({ 
    @Result(column = "X", property = "a", many = @Many(select = "getIdsC")), 
    @Result(column = "X", property = "b", one = @One(select = "getTGN")) 
}) 
TG getTG(@Param("param") int param); 
class TG{ 
    String a; 
    List<Integer> b; 
} 

Je l'ai vérifié, et pour getTGN il retourne la chaîne appropriée, comme "example". Cependant, pour getIdsC il renvoie null - ce qui semble être le bon résultat, car il n'y a pas d'éléments (peut-être un meilleur résultat serait une liste vide).
Ma question est.
Comment forcer mybatis à retourner objet de TG tg tel que: tg.a=null, tg.a="example". À ce moment, il renvoie null, bien que le champ a ne soit pas nul.Pourquoi mybatis abandonne et retourne null?

Répondre

0

Vous avez juste besoin d'inverser le type déclaré ou le mappage pour a et b. Pouvez-vous voir l'incohérence?

property = "a", beaucoup ==>cordes a;

propriété = "b", un ==>Liste b;

Cela fonctionne mieux ainsi:

Chaîne < => @One
Liste < => @Many

Cet ensemble appart, votre code est bon, l'objet est bien peuplé, il y a même une liste vide au lieu de null quand getIdsC ne retourne aucun résultat.