【发布时间】:2016-05-30 16:08:32
【问题描述】:
我正在尝试在 MySQL 上将 queryRaw 与 RawRowMapper 一起使用。它适用于字符串列,但是如果我添加一个长字段,.mapRow() 会阻塞——它会尝试将列名转换为数字。
doc for getRawRowMapper 说它是实验性的并提供反馈,但我只是一个鸡蛋,所以如果其他人成功使用此配置,我会更加努力,然后再用它来窃听 Gray。
我的代码如下:
@DatabaseField(dataType=DataType.LONG_STRING)
@Getter @Setter
private String formatted_message;
@DatabaseField(id=true)
@Getter @Setter
private long event_id;
public void getRowMapper() {
RawRowMapper<DbLog> rowMapper = daol.getRawRowMapper();
final String[] rowmap = { DbLog.EVENTID_FIELD, DbLog.MESSAGE_FIELD, DbLog.LEVEL_FIELD }; //
try {
rowMapper.mapRow( rowmap, rowmap );
} catch (NumberFormatException e) {
e.printStackTrace();
}
}
它返回以下堆栈跟踪:
java.lang.NumberFormatException: For input string: "event_id"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Long.parseLong(Long.java:441)
at java.lang.Long.parseLong(Long.java:483)
at com.j256.ormlite.field.types.LongObjectType.parseDefaultString(LongObjectType.java:32)
at com.j256.ormlite.field.types.BaseDataType.resultStringToJava(BaseDataType.java:161)
at com.j256.ormlite.field.FieldType.convertStringToJavaField(FieldType.java:671)
at com.j256.ormlite.stmt.RawRowMapperImpl.mapRow(RawRowMapperImpl.java:33)
【问题讨论】: