日期:2014-05-16 浏览次数:20681 次
(1)? Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Every derived table must have its own alias
?表明嵌套的select语句生成的结果集必须被括号包围,并且声明别名。
?
(2) 动态标签dynamic
动态的一元标签dynamic隐式地具有值为true的removeFirstPrepend属性,那么在其所包含的内容体的第一个条件所含有的prepend属性值会被忽略,但是需要写成<dynamic prepend=" WHERE ">, 而不能写成WHERE <dynamic>, 并且如果所嵌套的内容体不含prepend属性的条件,不会被计算在内。
示例1: 正确
<dynamic prepend=" WHERE "
>
? <isNotEmpty prepend=" AND "
property="x">
? ?? x = #x#
? </isNotEmpty>
? <isNotEmpty prepend=" AND " property="y">
? ?? y = #y#
? </isNotEmpty>
</dynamic>
?
示例2: 错, 会生成where and x=?的错误SQL语句
WHERE
<dynamic
>
? <isNotEmpty prepend=" AND " property="x">
? ?? x = #x#
? </isNotEmpty>
? ? <isNotEmpty prepend=" AND " property="y">
? ?? y = #y#
? </isNotEmpty>
</dynamic>
?
示例3: 错, 会生成where x=? y=? 的错误SQL语句
<dynamic prepend=" WHERE " >
? <isNotEmpty property="x">
? ?? x = #x#
? </isNotEmpty>
? ? <isNotEmpty prepend=" AND " property="y">
? ?? y = #y#
? </isNotEmpty>
</dynamic>
?