詳解mybatis plus使用insert沒有返回主鍵的處理
項(xiàng)目使用springboot搭建。最初的時(shí)候是使用mybatis,后來升級(jí)到mybatis plus。按照mp的官網(wǎng)介紹,使用mp的insert方法,對(duì)于自增的數(shù)據(jù)庫表,mp會(huì)把主鍵寫入回實(shí)例的對(duì)應(yīng)屬性。但實(shí)際操作起來,卻沒有主鍵。
entity 類設(shè)置如下:
@TableName(value = "USERINFO") public class UserInfo { /** * 指定自增策略 */ @TableId(value = "user_id",type = IdType.AUTO) private Long userId; private String gender; private Date birthday; private String phone; //省略后面的其他屬性和getter/setter }
dao 類設(shè)置如下:
@Repository @Mapper public interface UserInfoDao extends BaseMapper<UserInfo> { // int insert(UserInfo record); int insertSelective(UserInfo record); UserInfo selectByPrimaryKey(Long logId); int updateByPrimaryKeySelective(UserInfo record); }
Service類調(diào)用userInfoDao的insert方法(此方法是來源于BaseMapper)。但是insert成功后沒有返回主鍵userId。上網(wǎng)查了下,其他人都是這樣設(shè)置,就會(huì)有主鍵返回。
看到dao類里面一條注釋,// int insert(UserInfo record); ,心里有個(gè)想法。
這條注釋對(duì)應(yīng)的insert方法,是使用mybatis generator生成的。但是因?yàn)榇朔椒蚼ybatis plus的通用方法名一樣,所以我把它注釋了。會(huì)不會(huì)是因?yàn)閐ao對(duì)應(yīng)的mapper.xml文件,里面的id = inesert的sql語句依然存在,從而覆蓋掉了mybatis plus的通用insert,所以沒有自動(dòng)返回主鍵。
點(diǎn)進(jìn)去對(duì)應(yīng)mapper.xml文件,果然看到<insert id="insert">的sql語句。刪掉該語句,重試mybatis plus的insert方法,這次有主鍵返回了。
到此這篇關(guān)于詳解mybatis plus使用insert沒有返回主鍵的處理的文章就介紹到這了,更多相關(guān)mybatis plus insert沒有主鍵內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Springboot文件上傳出現(xiàn)找不到指定系統(tǒng)路徑的解決
這篇文章主要介紹了Springboot文件上傳出現(xiàn)找不到指定系統(tǒng)路徑的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08springboot jpaRepository為何一定要對(duì)Entity序列化
這篇文章主要介紹了springboot jpaRepository為何一定要對(duì)Entity序列化,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12

springcloud微服務(wù)基于redis集群的單點(diǎn)登錄實(shí)現(xiàn)解析

Java中的SynchronousQueue隊(duì)列詳解

親手教你IDEA2020.3創(chuàng)建Javaweb項(xiàng)目的步驟詳解