当前位置: 首页 > 知识库问答 >
问题:

Spring Boot REST Hibernate-创建用户

殷浩慨
2023-03-14
@Entity
@Table(name = "users")
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @NotNull
    @NotBlank
    @Size(max = 100)
    @Column(name = "firstName")
    private String name;

    @NotNull
    @NotBlank
    @Size(max = 30)
    @Column(name = "username", unique = true)
    private String username;

    @NotNull
    @NotBlank
    @Size(max = 150)
    @Column(name = "password")
    private String password;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "cityId", nullable = false)
    @JsonIgnore
    private City city;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "countryId", nullable = false)
    @JsonIgnore
    private Country country;

    // Getters and Setters
    ...
}

UserController.java

@PostMapping("/users/{countryId}/{cityId}")
public User createUser(@PathParam(value = "countryId") Long countryId, @PathParam(value = "cityId") Long cityId,
        @Valid @RequestBody User user) {
    user.setCountry(countryRepository.findById(countryId)
            .orElseThrow(() -> new ResourceNotFoundException("Country not found with id " + countryId)));
    user.setCity(cityRepository.findById(cityId)
            .orElseThrow(() -> new ResourceNotFoundException("City not found with id " + cityId)));
    return userRepository.save(user);
}

UserRepository.java

@Repository
public interface UserRepository extends JpaRepository<User, Long> {
    List<User> findByCountryId(Long countryId);

    List<User> findByCityId(Long cityId);
}

我用邮差做测试。我尝试使用以下URL(1=countryID,4=cityId)和有效负载创建一个用户:

localhost:8080/users/1/4
{
    "name": "David",
    "username": "david",
    "password": "test",
}
{
    "timestamp": "2018-05-07T13:44:03.497+0000",
    "status": 500,
    "error": "Internal Server Error",
    "message": "The given id must not be null!; nested exception is java.lang.IllegalArgumentException: The given id must not be null!",
    "path": "/users/1/4"
}

但我不知道如何解决这个问题

共有1个答案

姬自强
2023-03-14

您应该将PostgreSQL中id列的数据类型设置为serial

@PathParam更改为@PathVariable应该可以工作。

你使用了错误的注释。

 类似资料:
  • 主要内容:创建用户的步骤在企业开发中会为每位程序员、测试人员等相关人员分配一个账号,用户通过使用svn客户端连接svn服务时需要输入账号和密码,svn服务对账号和密码进行校验,输入正确可以继续访问,当用户访问仓库下某个目录时,svn服务对用户进行授权,如果用户拥有该目录的访问权限方可访问。 判断账号和密码输入是否正确的过程即认证过程。 判断用户是否拥有目录的读/写权限时即授权过程。 创建用户的步骤   查看已创建的用户:

  • 接口说明 创建用户 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 POST /api/user/1.0.0/create 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 username string form 是 用户名 password string form 是 密码 phone string form 是 手机

  • 主要内容:1. 使用CREATE USER语句创建用户,2. 使用 INSERT 语句新建用户,3. 使用GRANT语句新建用户MySQL 在安装时,会默认创建一个名为 root 的用户,该用户拥有超级权限,可以控制整个 MySQL 服务器。 在对 MySQL 的日常管理和操作中,为了避免有人恶意使用 root 用户控制数据库,我们通常创建一些具有适当权限的用户,尽可能地不用或少用 root 用户登录系统,以此来确保数据的安全访问。 MySQL 提供了以下 3 种方法创建用户。 使用 CREAT

  • 主要内容:创建用户组的步骤创建用户组的步骤   查看创建的组: 修改组:

  • 主要内容:添加用户的步骤在本章中,我们将讨论如何将用户添加到GitLab中的项目中。 添加用户的步骤 步骤(1):登录到您的GitLab帐户并转到Projects部分下。如下图所示 - 步骤(2): 接下来,单击设置选项卡下的 Members 选项: 步骤(3): 它会打开下面的界面,用于将成员添加到您的项目中: 步骤(4): 现在输入用户名称,角色权限,到期日期(可选),然后点击 Add to project按钮将用户

  • 创建用户 之 createUser 方法 创建用户并分配用户组 我们创建一个用户,并且为它分配用户组,他会继承自用户组的权限 try { // 创建一个用户 login字段是必须的 默认是 email 可配置,参考 [2.2 配置登陆字段](setlogin.md) $user = Sentry::createUser(array( 'email' => '

  • 问题内容: models.py 我想在一定条件下将默认数据插入数据库中,这应该在通过注释创建超级用户时发生。 我不知道使用django是可行的,但这是必要条件。我尝试了上面的代码。创建超级用户时收到错误“ AttributeError:’User’对象没有属性’location’”。 我需要的样品如下 问题答案: 尝试将此功能用作信号处理程序: 向模型字段添加选择: Django CharFiel

  • WordPress有一个管理仪表板。在仪表板中,我们可以作为管理员添加新用户。我想在管理员添加新用户时在MySQL中创建一个表。例如,我创建了一个名为John Smith的用户,其用户名为user1;当我成功添加该用户时,将在名为user1的数据库中创建一个表。