弹簧数据 JPA;save() 自动增加主键错误

top*_*an5 6 mysql spring hibernate jpa spring-data-jpa

我有一个以 UserId 作为主键的 USER 表,它在 MySQL 中是 int 和自动递增的。

@Id
@GeneratedValue
@Column(name="USER_ID")
private Integer userId;
Run Code Online (Sandbox Code Playgroud)

当我运行 userRepository.save(user); 我收到一条错误消息:org.springframework.beans.InvalidPropertyException: Invalid property 'userId' of bean class [com.mysite.model.User]: Getter for property 'userId' throw exception; 嵌套异常是 java.lang.reflect.InvocationTargetException

如果我只是对用户 ID 进行硬编码,则不会出现此错误。我究竟做错了什么?

// hard code it
user.setUserId(5);
userRepository.save(user);
Run Code Online (Sandbox Code Playgroud)

Joh*_*son 5

您可能需要设置 ID 策略:@GeneratedValue(strategy=GenerationType.IDENTITY)

你所拥有的应该有效,但也可能很古怪。


top*_*an5 5

发现我的问题:我在我的 setter 和 getter 中使用 int 作为 userId,而不是 Integer。