首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以在关联映射器中使用鉴别器吗?

我可以在关联映射器中使用鉴别器吗?
EN

Stack Overflow用户
提问于 2015-05-10 04:14:15
回答 1查看 915关注 0票数 2

我想根据对象的具体状态(State模式)来设置一个result属性。

我怎样才能用myBatis做得更好呢?

这种方法给了我一个错误:

代码语言:javascript
复制
<association property="state" javaType="commonInterface">
    <discriminator javaType="String" column="state">
        <case value="CREATED" resultType="ClassA" />
        <case value="RUNNING" resultType="ClassB" />
        <case value="FINSHED" resultType="ClassC" />
    </discriminator>
</association>

错误是:

代码语言:javascript
复制
Could not set property 'state' of 'FatherClass' with value '1' 
Cause: java.lang.IllegalArgumentException: Can not set com.example.State field 
com.example.state to java.lang.Long

因此,不知何故,myBatis返回一个长整型对象,而不是一个具体的对象。这种方法可能吗?

编辑:状态"CREATED“、"RUNNING”、"FINISHED“在保存到数据库时来自枚举。但当再次读取它时,我可以很容易地将其视为字符串-对吧?!

EN

回答 1

Stack Overflow用户

发布于 2016-10-03 22:48:30

您可能应该将您的POJO声明为枚举而不是类,无论如何,在Mybatis中有一个默认的枚举处理,但您可以继续提供您自己的自定义处理程序:

欲了解更多信息,请访问:http://www.mybatis.org/mybatis-3/configuration.html#typeHandlers

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30144542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档