【问题标题】:Is it possible to map POJO fields with names different from the table columns?是否可以映射名称与表列不同的 POJO 字段?
【发布时间】:2013-09-25 23:33:28
【问题描述】:

我对 ibatis 比较陌生。我知道它已经升级到了mybatis,但是由于某种原因我不得不使用ibatis。我的问题是“是否可以映射名称与表列不同的 POJO 字段?”

我有一个表、映射文件和 POJO 类。如果我的 POJO 类的名称与表中的列完全相同,我可以成功读取数据,但如果我将该字段命名为其他名称,则它不起作用。我更改了相应的getter并在映射文件中定义了一个resultMap,如下所示

<resultMap id="result" class="Subscriber">
    <result column="AdvisorId" property="id" jdbcType="INTEGER"/>
    <result column="FirstName" property="FirstName" jdbcType="VARCHAR"/> 
    <result column="LastName" property="LastName" jdbcType="VARCHAR"/> 
    <result column="EmailId" property="EmailId222" jdbcType="VARCHAR"/>
</resultMap>

<select id="getAll" resultMap="result">
    SELECT AdvisorId,FirstName,LastName,EmailId FROM communication
</select>

这里作为一个例子,我试图将我的 POJO 字段中的 EmailId 重命名为 EmailId222

【问题讨论】:

  • 是的,只要订阅者 bean 中有一个名为 EmailId222 的属性并具有正确的 getEmailId222 和 setEmailId222 方法,这应该可以工作。
  • @Ankit,我没有二传手。现在我加了,还是不行。
  • 是的,没有setter ibatis 将不知道EmailId 需要映射到哪个字段。

标签: java xml ibatis


【解决方案1】:

Subscriber 类中,您必须为字段定义 gettersetter 方法。如有必要,请小心使用大写字母。然后您必须重新启动您的应用程序才能使更改生效。在你的情况下,你应该实现:

getEmailId222(){...}

setEmailId222(String EmailId222){...}

【讨论】:

    猜你喜欢
    • 2011-09-20
    • 1970-01-01
    • 2019-12-17
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    • 1970-01-01
    • 2021-04-16
    • 1970-01-01
    相关资源
    最近更新 更多