浏览代码

saveOrUpdate没有主键抛出异常

Caratacus 9 年之前
父节点
当前提交
c9f2688909
共有 1 个文件被更改,包括 6 次插入2 次删除
  1. 6 2
      mybatis-plus/src/main/java/com/baomidou/framework/service/impl/ServiceImpl.java

+ 6 - 2
mybatis-plus/src/main/java/com/baomidou/framework/service/impl/ServiceImpl.java

@@ -16,6 +16,7 @@
 package com.baomidou.framework.service.impl;
 
 import com.baomidou.framework.service.IService;
+import com.baomidou.mybatisplus.exceptions.MybatisPlusException;
 import com.baomidou.mybatisplus.mapper.BaseMapper;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.plugins.Page;
@@ -72,8 +73,11 @@ public class ServiceImpl<M extends BaseMapper<T, PK>, T, PK extends Serializable
 			TableInfo tableInfo = TableInfoHelper.getTableInfo(cls);
 			if (null != tableInfo) {
 				try {
-					// TODO 没有@TableId 是否应该抛出异常
-					Method m = cls.getMethod("get" + StringUtils.capitalize(tableInfo.getKeyProperty()));
+					String keyProperty = tableInfo.getKeyProperty();
+					if (keyProperty == null) {
+						throw new MybatisPlusException("Error:  Cannot execute. Could not find @TableId.");
+					}
+					Method m = cls.getMethod("get" + StringUtils.capitalize(keyProperty));
 					Object idVal = m.invoke(entity);
 					if (null != idVal) {
 						return selective ? updateSelectiveById(entity) : updateById(entity);