Не работает SELECT COUNT(*) в Mybatis

390
27 января 2017, 05:54

При выполнении запроса на получение количества записей возникает ошибка

Error querying database. Cause: java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
The error may involve dataAccess.PhoneRecordMapper.getCountOfRecords-Inline
The error occurred while setting parameters
Cause: java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).

Сам запрос, в котором возникает ошибка(при чем при выполнении запроса на сервере, а не через код - все работает нормально)

<select id="getCountOfRecords" resultType="java.lang.Integer" parameterType="hashmap">
        SELECT COUNT(*)
        FROM t_call
        LEFT JOIN t_event
        ON t_call.ID_CALL = t_event.CALL_ID
</select>
<resultMap type="phoneRecord" id="phoneRecordMap">
        <id property="recordId" column="RECORD_ID"/>
        <result property="recordId" column="RECORD_ID"/>
        <result property="recordEventId" column="RECORD_EVENT_ID"/>
        <result property="recordDate" column="RECORD_DATE"/>
        <result property="caller" column="CALLER"/>
        <result property="reciever" column="RECIEVER"/>
        <result property="callId" column="CALL_ID"/>
        <result property="idCall" column="ID_CALL"/>
</resultMap>

метод в интерфейсе:

public int getCountOfRecords(HashMap<String, Object> param);

Если доставать через код просто все записи, тогда все ок, и записи достаются. Может кто то подсказать в чем может быть проблема? Записи достаю в Struts экшене.

Answer 1

Запрос count с параметрами в mybatis выглядит следующим образом:

 <select id="countByExample" parameterType="ru.izebit.model.MySuperModelExample"
        resultType="java.lang.Integer">
    select count(*) from my_super_table
    <if test="_parameter != null">
        <include refid="Example_Where_Clause"/>
    </if>
</select>

где MySuperModelExample - это объект содержащий параметры запроса. Его писать в ручную не обязательно, он генерируется maven плагином mybatis-generator-maven-plugin

READ ALSO
Как добавить переменную для просмотра в режиме отладки в IntelliJ IDEA?

Как добавить переменную для просмотра в режиме отладки в IntelliJ IDEA?

Как добавить свою переменную для просмотра в режиме отладки в IntelliJ IDEA?

365
VideoView воспроизводит звук без изображения

VideoView воспроизводит звук без изображения

Дело в том, что VideoView с помощью MediaPlayer корректно воспроизводит все видео кроме 4k или Full HD разрешенияТо есть звук идет нормально, а вместо изображения...

357
Сравнение объектов и переменных в Java

Сравнение объектов и переменных в Java

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

449