java – MyBatis将属性映射到错误的枚举
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – MyBatis将属性映射到错误的枚举,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2328字,纯文字阅读大概需要4分钟。
内容图文
我的域类具有映射到枚举的属性.奇怪的是MyBatis 3.4.x(3.4.0和3.4.4.这适用于3.3.x),Spring MyBatis 1.3.1试图用不相关的enum映射它并给出错误.
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column ‘order_line_programmed’ from result set. Cause: java.lang.IllegalArgumentException: No enum constant foo.UnrelatedEnum.yes
我的域类看起来像这样:
public class OrderLine {
private Long id;
private Product product;
private ProgrammedStatus programmedStatus;
private String programmedFeedback;
private boolean completed = false;
}
ProgrammedStatus是一个简单的枚举
public enum ProgrammedStatus {
yes, no, error;
}
正是这个编程的状态映射到编程列,如下所示,
<resultMap id="orderLineResult" type="foo.OrderLine">
<id property="id" column="technical_order_line_id" />
<result property="programmedStatus" column="order_line_programmed" typeHandler="org.apache.ibatis.type.EnumTypeHandler" />
<result property="programmedFeedback" column="order_line_programmed_feedback" />
<result property="completed" column="order_line_completed"
javaType="java.lang.Boolean" typeHandler="org.apache.ibatis.type.BooleanTypeHandler" />
<association property="product"
notNullColumn="order_line_product_id"
resultMap="foo.repository.mapper.ProductMapper.productResult" />
</resultMap>
我甚至尝试使用typeHandler映射javaType,但MyBatis似乎忽略了它.
很少有可能有用的信息,
> UnrelatedEnum也是一个简单的Enum as ProgrammedStatus
> Product有一个属性,其属性类型为UnrelatedEnum
我在其他代码处也发现了这个问题.我可以在这里使用我自己的特定typeHandler而不是EnumTypeHandler.问题是这个枚举匹配在我的程序中的很多地方使用,并且迁移机智3.4使我的程序不稳定.
解决方法:
删除明确提到的枚举typeHandler对我有用
Remove : typeHandler=”org.apache.ibatis.type.EnumTypeHandler”
<resultMap id="orderLineResult" type="foo.OrderLine">
<id property="id" column="technical_order_line_id" />
<result property="programmedStatus" column="order_line_programmed" />
<result property="programmedFeedback" column="order_line_programmed_feedback" />
<result property="completed" column="order_line_completed"
javaType="java.lang.Boolean" typeHandler="org.apache.ibatis.type.BooleanTypeHandler" />
<association property="product"
notNullColumn="order_line_product_id"
resultMap="foo.repository.mapper.ProductMapper.productResult" />
</resultMap>
内容总结
以上是互联网集市为您收集整理的java – MyBatis将属性映射到错误的枚举全部内容,希望文章能够帮你解决java – MyBatis将属性映射到错误的枚举所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。