在MyBatis内的OGNL中的别名

时间:2012-10-11 07:48:59

标签: mybatis ognl

我正在使用MyBatis编程,我有这段代码

<if test="@mypackage.verylongname.utilities.MyBatisUtilities@isNotEmpty(recipient)">
    and DOCUMENTS.recipient = #{recipient}
</if>

我想有办法避免使用我的类MyBatisUtilities的完整路径名。它在吗?

在mybatis-config文件中添加别名不起作用

<typeAlias alias="MyBatisUtilities" type="mypackage.verylongname.utilities.MyBatisUtilities"/>

2 个答案:

答案 0 :(得分:0)

除非mybatis为OGNL提供一些特殊的扩展功能,否则不要认为没有办法。

这并不意味着它无法在OGNL中以某种方式对核心库进行更改,只是不相信它当前。 (我的记忆可能不好,但非常确定@ fullclassname @ methodname是OGNL解决静态方法调用的唯一方法)

答案 1 :(得分:0)

“bind”允许您从OGNL表达式中创建变量。有关详细信息,请参阅:http://mybatis.github.io/mybatis-3/dynamic-sql.html

<select id="selectBlogsLike" parameterType="Blog" resultType="Blog">
    <bind name="pattern" value="'%' + _parameter.getTitle() + '%'" />
    SELECT * FROM BLOG
    WHERE title LIKE #{pattern}
 </select>