Problema con mybatis dopo aggiunta mapper

di il
2 risposte

Problema con mybatis dopo aggiunta mapper

Ciao!

nel mio file di configuazione ho aggiunto un mapper, e da quel momento sembra che l'interrogazione al db non funzioni più.
ne sul mapper vecchio, ne su quello nuovo.
non appaiono errori, ma semplicemente non si vedono risultati:

    <mappers>
        <mapper resource="ClienteMapper.xml"/>
        <mapper resource="AssociazioneClienteMapper.xml"/>
    </mappers>
dove quello nuovo è AssociazioneClienteMapper.xml, che è questo:

<mapper namespace="com.b2b.rest.AssociazioneClienteMapper">

    <resultMap type="AssociazioneCliente" id="AssociazioneClienteMap">
        <result property="codice" column="associazione_cliente"/>
        <result property="linea" column="associazione_linea"/>
        <result property="listino" column="associazione_listino"/>
        <result property="sconto1" column="associazione_sconto_1"/>
        <result property="agente" column="associazione_agente"/>
        <result property="sub_agente" column="associazione_sub_agente"/>
        <result property="zona" column="associazione_zona"/>
    </resultMap>

    <select id="getByClienteCodice" resultMap="AssociazioneClienteMap">
        SELECT * FROM associazioni_clienti
        WHERE associazione_cliente = #{codice}
    </select>

</mapper>
dove la relativa interfaccia è questa:

import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface AssociazioneClienteMapper {

    public List<AssociazioneCliente> getByClienteCodice(@Param("codice") int codice);
}
e il "service" è questo:

import org.apache.ibatis.session.SqlSession;

import java.util.List;

public class AssociazioneClienteService {

    public List<AssociazioneCliente> getByClienteCodice(int codice) {
        try (SqlSession sqlSession = MyBatisUtils.getSqlSessionFactory().openSession()) {
            AssociazioneClienteMapper mapper = sqlSession.getMapper(AssociazioneClienteMapper.class);
            return mapper.getByClienteCodice(codice);
        }
    }
}
poi AssociazioneCliente è questa:

public class AssociazioneCliente {

    private int codice;
    private String linea;
    private String listino;
    private double sconto1;
    private int agente;
    private int subAgente;
    private String zona;
    
    // GETTER e SETTER
 }
qualche idea??

2 Risposte

  • Re: Problema con mybatis dopo aggiunta mapper

    fermat ha scritto:


    qualche idea??
    Giusto solo per chiarire:
    - il FQN (fully qualified name) della interfaccia deve corrispondere esattamente al namespace del <mapper>
    - Il type di <resultMap> deve essere completamente qualificato, a meno che hai impostato un type-alias

    E' così?

    Ah, occhio ai nomi delle property:

    <result property="sub_agente"

    Se la property nel bean dedotta è "subAgente", se vuoi che funzioni devi attivare in MyBatis il setting mapUnderscoreToCamelCase a true (per default è false).
  • Re: Problema con mybatis dopo aggiunta mapper

    Ok, i problemi erano l'alias e il property.
    grazie!!
Devi accedere o registrarti per scrivere nel forum
2 risposte