spring boot jpa存储数据的默认值为java的默认值

发布于 2022-09-12 04:11:02 字数 1166 浏览 13 评论 0

问题描述

使用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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

蓝颜夕 2022-09-19 04:11:02

请确认数据里的表主键设置为自增长的了。

泪眸﹌ 2022-09-19 04:11:02

private int userLevel;
类型改为Integer

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文