错误信息
Error querying database. Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String
Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)
at org.mybatis.spring.SqlSessionTemplate
S
q
l
S
e
s
s
i
o
n
I
n
t
e
r
c
e
p
t
o
r
.
i
n
v
o
k
e
(
S
q
l
S
e
s
s
i
o
n
T
e
m
p
l
a
t
e
.
j
a
v
a
:
440
)
a
t
c
o
m
.
s
u
n
.
p
r
o
x
y
.
SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440) at com.sun.proxy.
SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)atcom.sun.proxy.Proxy40.selectList(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223)
at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:147)
at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:80)
at org.apache.ibatis.binding.MapperProxy
P
l
a
i
n
M
e
t
h
o
d
I
n
v
o
k
e
r
.
i
n
v
o
k
e
(
M
a
p
p
e
r
P
r
o
x
y
.
j
a
v
a
:
144
)
a
t
o
r
g
.
a
p
a
c
h
e
.
i
b
a
t
i
s
.
b
i
n
d
i
n
g
.
M
a
p
p
e
r
P
r
o
x
y
.
i
n
v
o
k
e
(
M
a
p
p
e
r
P
r
o
x
y
.
j
a
v
a
:
85
)
a
t
c
o
m
.
s
u
n
.
p
r
o
x
y
.
PlainMethodInvoker.invoke(MapperProxy.java:144) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:85) at com.sun.proxy.
PlainMethodInvoker.invoke(MapperProxy.java:144)atorg.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:85)atcom.sun.proxy.Proxy46.selectAnalyzerGroup(Unknown Source)
at
… 99 more
错误原因
在mapper.xml文件中, 判断了, Date 类型的数据与空字符串的比较
例子:
错误的示例代码
<!-- 错误代码地点 -->
<if test="beginDate!=null and beginDate!=''">
and c.input_time >=#{beginDate}
</if>
<!-- 错误代码地点 -->
<if test="endDate!=null and endDate!=''">
and c.input_time <=#{endDate}
</if>
解决方法
就只要把那个判断的语句(beginDate!=’ ')删除就可以了
正确的示例代码
<!-- 修改之后的代码 -->
<if test="beginDate!=null">
and c.input_time >=#{beginDate}
</if>
<if test="endDate!=null">
and c.input_time <=#{endDate}
</if>