1

私は話せません、英語を上手に書きます。ごめん。しかし、私はあなたの助けが必要です。だから...私の英語は下手ですが..私は書いています。私が下品な文章を書く場合は、私の質問を評価して理解してください。

さあ行こう。


CommonVO.java

 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;
     } 

TestVO.java

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;
     }
}

Ibatis クエリ xml

<select id="testSelect" parameterClass="a.d.e.TestVO" resultClass="int">
    select a, b
      from TEST_TBL
     where 1 = 1
     &lt;isNotEmpty prepend="AND" property="productId">
         product_id = #productId#
     &lt;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)...

不思議なことに、それは断続的に発生します...

何か考えはありますか?どんな答えやコメントも役に立ちます。

ありがとうございました。

4

1 に答える 1

1

#productId# と記述すると、ibatis はこの属性の get-Method を parameter-class から呼び出します。

あなたのゲッターとセッターは間違った方法です。ゲッターは値を返し、セッターは値を設定する必要があります。

変更して、結果を教えてください ;)

例:

CommonVO.java

public void setProductId(String productId)
 {
      this.productId = productId;
 }

 public String getProductId()
 {

     return this.productId;
 } 
于 2012-12-12T12:45:21.267 に答える