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

...
¿Fue útil?

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
scroll top