У меня есть выбор, определенный в файле mapper.xml:
<mapper namespace="foo">
<select id="selectWithRoles" parameterType="String" resultMap="personWithRoles">
select *
from
PERSON P
left outer join PERSON_ROLE R on P.ID = R.PERSON_ID
where P.ID = #{id}
</select>
<resultMap id="personWithRoles" type="Person">
<id property="id" column="ID" />
<collection property="roles" ofType="Role">
<id property="personId" column="PERSON_ID"/>
<result property="name" column="NAME"/>
</collection>
</resultMap>
</mapper>
, и я хочу представить этот выбор через интерфейс DAO с помощью аннотаций без копирования операторов выбора в DAO.Следующее прекрасно работает:
@Select("select * from PERSON P left outer join PERSON_ROLE R on P.ID = R.PERSON_ID where P.ID = #{id}")
@ResultMap("personWithRoles")
public Person loadByIdWithRoles(String id);
Но я не люблю копировать SQL в аннотации (может быть довольно длинным), хочу что-то вроде этого:
@Select("selectWithRoles")
public Person loadByIdWithRoles(String id);
, где "selectWithRoles" - это идентификаторвыберите определенный в XML.Возможно ли это?