spring boot jpa存储数据的默认值为java的默认值
问题描述
使用jpa的save方法保存数据后返回的实体类为java数据类型的默认值
问题出现的环境背景及自己尝试过哪些方法
环境背景: 用户新增功能,调用新增接口后根据返回对象的id去查询等级表的等级.
尝试方法:最开始返回的是null,但是数据库的字段默认值设置的是1,后来实体类加上@DynamicInsert
查询出插入数据库的默认值为0
相关代码 粘贴代码文本(请勿用截图)
实体类代码:
@Data
@Entity
@Table(name = "tp_users", schema = "test_db")
@DynamicUpdate
@DynamicInsert
public class TpUsers {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer userId;
private String email;
private String password;
private String paypwd;
private byte sex;
private int birthday;
private String nickname;
private int userLevel;
}
新增用户代码:
TpUsers tpUsers = new TpUsers();
tpUsers.setMobile(phoneNum);
tpUsers.setPassword(password);
tpUsers.setNickname(phoneNum);
tpUsers.setFirstLeader(invite);
tpUsers.setRegTime(System.currentTimeMillis());
TpUsers save = tpUserRepository.save(tpUsers);
entityManager.refresh(save);
你期待的结果是什么?实际看到的错误信息又是什么?
期待结果:
save后返回数据库表中对应的用户数据,没有初始化的字段使用表的默认值
结果:没有初始化的字段使用的java数据类型的默认值
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
请确认数据里的表主键设置为自增长的了。
private int userLevel;
类型改为Integer