Executando verificação de segurança...
1

Se a relação do Usuário com o Endereço é 1:N (um usuário pode ter múltiplos endereços), então a sua tabela de endereços deve conter um constraint de uma chave estrangeira (pesquise como fazer isso com base no banco que estiver utilizando), assim o banco irá garantir que a coluna contendo o id do usuário deve corresponder a uma entrada existente na tabela de usuários.

Outra coisa que notei, é que no seu exemplo a senha está em plain text (se for só um exemplo mesmo e você já souber disso, pode desconsiderar, mas vale a pena falar sobre). Para salvar senhas dos usuários em bancos, é extremamente recomendado que se utilize hash, procurar saber mais sobre isso que é bem importante.

Carregando publicação patrocinada...
1

A senha é apenas um demo. Bem, o meu objetivo é fazer que o usuário logado ao cadastrar um novo endereço que fique salvo no id que pertence a ele, não que fica null no banco de dados. Talvez estou me expressando errado, mas fiz outro teste e sinto que to errando.

@RestController
@RequestMapping("/users")
@AllArgsConstructor
public class UserController {
    private final UserService service;

    @PostMapping("/")
    public ResponseEntity<User> createUser(@RequestBody User entity) {
        return ResponseEntity
                .status(HttpStatus.CREATED)
                .body(service.createUser(entity));
    }

    @PostMapping("/{userId}/address")
    public ResponseEntity<Address> createAddress(@PathVariable UUID userId,
                                                 @RequestBody Address entity) {
        return ResponseEntity
                .status(HttpStatus.CREATED)
                .body(service.createAddress(userId, entity));
    }

    @GetMapping("/{userId}")
    public ResponseEntity<User> getUserById(@PathVariable UUID userId) {
        return ResponseEntity
                .status(HttpStatus.OK)
                .body(service.getUserById(userId));
    }

    @GetMapping("/{userId}/{addressId}")
    public ResponseEntity<Optional<Address>> getAddressById(@PathVariable UUID userId,
                                                            @PathVariable UUID addressId) {
        return ResponseEntity
                .status(HttpStatus.OK)
                .body(service.getAddressById(userId, addressId));
    }
}