MyBatis在插入抛出org.apache.ibatis.executor.ExecutorException时使用GeneedKeys

时间:2017-08-15 14:26:32

标签: java mybatis

我正在使用mybatis 3.4.4和Oracle db。我想插入一个对象并获取它的生成ID。为此目的我有以下代码。 在mapper.xml中:

<insert id="createAsset" useGeneratedKeys="true" keyProperty="asset.id" keyColumn="ID" parameterType="Asset">

在mapper界面中:

Long createAsset(@Param("asset") Asset asset);

我收到此错误:

  

org.apache.ibatis.executor.ExecutorException:获取生成密钥或将结果设置为参数对象时出错。原因:java.lang.NullPointerException

我检查了this问题,该问题与我的问题基本相同,并且作者声称已通过更新版本解决了问题。我确定我有最新版本,问题仍然存在。

请帮忙吗?

1 个答案:

答案 0 :(得分:0)

bean结构和给定的异常使我认为MyBatis希望找到&#34;资产&#34;字段已经填充了&#34;资产&#34;对象实例,虽然它是null。

此外,我认为&#34; parameterType&#34;必须表明&#34; id&#34;的类型字段(可能是整数?),而不是字段容器的类型(资产)。