Да, верно. IBatis сгенерирует исключение, если при использовании queryForObject()
будет найдено более одной записи.
Если вы используете queryForList, вы можете определить resultMap, и я бы лучше определил мой resultMap с возвращенным типом класса и сделал там свойство для сопоставления столбца.Я думаю, что это выглядит более чисто (если смотреть на ваш класс DAO, его легко читать и абстрагировать) и лучше абстрагировать.Однако это мое мнение.
<resultMap id="accountsResult" class="xx.co.xx.AccountsDTO">
<result property="id" column="id" jdbcType="NUMERIC" javaType="java.lang.Long"/>
<result property="name" column="name" jdbcType="NUMERIC" javaType="java.lang.Long"/>
</resultMap>
<select id="retrieveAccounts" resultMap="accountsResult">
SELECT
acounts.id,
accounts.name
FROM accounts
</select>
queryForList ("retrieveAccounts");