LoginSignup
1
0

More than 1 year has passed since last update.

ibatisでThere is no WRITEABLE property named ''xx" in class xxのエラー

Posted at

最近ずっとStrutsでiBatisを使ったプログラムの改修をしていて、このエラーに遭遇したのですが、地味にググってもちょっと解決に詰まったのでメモ書き。

エラーメッセージは以下のような形式で出ていました。

com.ibatis.common.beans.ProbeException: There is no WRITEABLE property named 'xxx列名' in class 'パッケージ名.クラス名'

で、原因はというとほぼこのブログで書かれていた内容ではあったのですが地味に違っていて、なんとカラム名にアンダースコアが入っているときはgetterとsetterにも同様にアンスコを入れないと認識されない、でした。

例えば今回の場合、取得したいDBテーブルのカラム名がprev_ansidsで取得用のDtoでは以下のような変数名にセットするようにしていた場合、以下のようなsetterとgetter名にするとこのエラーが出ます:

AnswerDto.java
private String prev_ansIds;

public String getPrevAnsIds() {
     return prev_ansIds;
}

public void setPrevAnsIds(String prev_ansIds) {
      this.prev_ansIds = prev_ansIds;
}

これをちゃんと以下のようなコードに直したらエラーは出なくなりました。

AnswerDto.java
private String prev_ansIds;

public String getPrev_ansIds() {
     return prev_ansIds;
}

public void setPrev_ansIds(String prev_ansIds) {
      this.prev_ansIds = prev_ansIds;
}
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0