Variables de alcance en mapas de primavera/mybatis
Pregunta
Tengo una variable ConversationsCope.myvar = "myValue";
Me gustaría usarlo dentro de un mapa mybatis como, como,
select col1, col1, conversationScope.myVar as ScopeVar
from table1;
desired result
col1 col2 ScopeVar
xxxx xxxx myValue
yyyy yyyy myValue
...
Solución
MyBatis admite SQL dinámico en la naturaleza que necesita. El gran truco es usar $ {variable} en lugar de #{variable}. Solo ten cuidado, te deja susceptible a los ataques de inyección SQL. Cuando se usa # myBatis usa estacaciones preparadas para evitar la inyección de SQL, y luego
Así que tome, por ejemplo, el ejemplo, tenía una interfaz mapper con el método.
ComplexObject selectSomeObject(@Param("columnName") String columnName);
Su mapa SQL podría usar el parámetro en parte del código de selección real.
es decir
<select id="selectSomeObject" resultType="someObject">
select t1.column as ${columnName}
from table1 t1
</select>
Si necesita una variable global, consulte esta pregunta. MyBatis - Definición de un parámetro global
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow