当前使用版本(必填,否则不予处理)
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.3.1</version>
</dependency>
该问题是如何引起的?(确定最新版也有问题再提!!!)
数据库语句:
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int NOT NULL AUTO_INCREMENT,
`username` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`password` varchar(32) DEFAULT NULL,
`countSize` varchar(20) DEFAULT '0.0B',
`totalSize` varchar(20) DEFAULT '10.0GB',
PRIMARY KEY (`id`,`username`)
) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8mb3;
生成代码
- ```java
package com.example.sb001.model;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import lombok.Data;
/**
*
* @TableName user
*/
@TableName(value ="user")
@Data
public class User implements Serializable {
/**
* */
@TableId(type = IdType.AUTO)
private Integer id;
/**
* */
@TableId
private String username;
/**
* */
private String password;
/**
* */
private String countsize;
/**
* */
private String totalsize;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
```
`
去除@TableID即不报错
chatgpt:
在 User 类中,@TableId 注解用于定义主键,但是被用在了 username 字段上,这是不正确的。联合主键应该通过 @TableId 和 @TableField 同时指定,
重现步骤(如果有就写完整)
报错信息
Comment From: miemieYaho
不支持联合主键