我不说话,写得很好。抱歉。 但我需要你的帮助。 所以...尽管我的英语很糟糕..我在说。 如果我做得很好,请估计并理解我的问题。
我们走了。
package a.b.c;
public class CommonVO {
private String productId;
public void setProductId(String productId)
{
return this.productId;
}
public String getProductId(String productId)
{
this.productId = productId;
}
package a.d.e;
public class TestVO extends CommonVO {
private String year;
public void setYear(String year)
{
return this.year;
}
public String getYear(String year)
{
this.year = year;
}
}
<select id="testSelect" parameterClass="a.d.e.TestVO" resultClass="int">
select a, b
from TEST_TBL
where 1 = 1
<isNotEmpty prepend="AND" property="productId">
product_id = #productId#
<isNotEmpty>
</select>
有时,会发生以下错误:
> --- The error occurred while applying a parameter map.
> --- Check the testSelect-InlineParameterMap.
> --- Check the parameter mapping for the 'productId' property.
> --- Cause: java.sql.SQLException: ▒▒▒▒▒▒▒▒ ▒▒ ▒ε▒▒▒ com.ibatis.common.jdbc.exception.NestedSQLException:
> --- The error occurred while applying a parameter map.
> --- Check the testSelect-InlineParameterMap.
> --- Check the parameter mapping for the 'productId' property.
> --- Cause: java.sql.SQLException: ▒▒▒▒▒▒▒▒ ▒▒ ▒ε▒▒▒
> at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryWithCallback(MappedStatement.java:201)
> at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryForList(MappedStatement.java:139)
> at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:567)
> at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:541)
> at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessionImpl.java:118)
> at org.springframework.orm.ibatis.SqlMapClientTemplate$3.doInSqlMapClient(SqlMapClientTemplate.java:298)
> at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:166)
> at org.springframework.orm.ibatis.SqlMapClientTemplate.executeWithListResult(SqlMapClientTemplate.java:249)
> at org.springframework.orm.ibatis.SqlMapClientTemplate.queryForList(SqlMapClientTemplate.java:296)
> at egovframework.rte.psl.dataaccess.UmmAbstractDAO.list(UmmAbstractDAO.java:124)
> at go.narastat.meta.std.service.impl.testSelect(StdMetaDAO.java:185)
> at go.narastat.meta.std.service.impl.StdMetaImpl.stdMetaNoMatchSvyItemList(StdMetaImpl.java:164)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:600)...
奇怪的是,它间歇性地发生......
你知道吗?任何答案或评论都会有所帮助。谢谢。
答案 0 :(得分:1)
编写#productId时#ibatis从参数类调用此属性的get-Method。
你的getter和setter是错误的方式。 getter应该返回值,setter应该设置值。
改变它,告诉我们你的结果;)
示例:
<强> CommonVO.java 强>
public void setProductId(String productId)
{
this.productId = productId;
}
public String getProductId()
{
return this.productId;
}