Тихая ошибка iBatis для сопоставления столбцов - PullRequest
0 голосов
/ 23 января 2011

Когда я сопоставляю POJO с iBatis, как показано ниже:

Person {
    String firstName
    String lastName;
}

К запросу:

select firstName, last_name from Person

Я считаю, что Person.firstName заполнено правильно, тогда как Person.lastName равно нулю - это происходит молча.Я могу ввести ResultMap, чтобы исправить нулевую проблему (переводя last_name -> lastName), но я бы хотел, чтобы iBatis выдавал ошибку при попытке сопоставления, а не делал все возможное, что он может молча ...

Кто-нибудь знает, как я могу это сделать?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 23 января 2011

Я вижу несколько проблем.

Я слепой!

Класс Person { String firstName String lastName; } предоставляет iBatis ровно 0 видимых элементов, поскольку iBatis не расширяет Person и не разделяет пакет Person.Обратите внимание на следующее:

public class Person
{
    private String firstName;
    private String lastName;

    public String getFirstName()
    {
        return firstName;
    }

    public String getLastName()
    {
        return lastName;
    }

    public void setFirstName(final String newValue)
    {
        firstName = newValue;
    }

    public void setLastName(final String newValue)
    {
        lastName = newValue;
    }
}

Отдельно и не равно

last_name ни в коем случае не совпадает с lastName.Попробуйте использовать карту результатов, как показано ниже:

<resultMap id="theIdOfThisMap"
           class="Person">
    <result property="firstName" column="firstName"/>
    <result property="lastName" column="last_name"/>
</resultMap>

<select id="searchForEntities"
        resultMap="theIdOfThisMap">
    select
        firstName,
        last_name
    from
        PERSON
</select>
0 голосов
/ 23 января 2011

Вы можете попробовать наложение с AS :

SELECT firstName, last_name AS lastName
FROM   Person
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...