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数据类型的默认值

阅读 4.1k
2 个回答

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

private int userLevel;
类型改为Integer

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题