Spring Boot Mapping JSON для установки упомянутого объекта в создаваемом новом объекте

Как связать моего нового пользователя объекта с объектом роли в моем приложении загрузки Spring, когда я получаю сообщение запроса с json / приложением, в котором есть все данные для нового пользователя? Каков лучший подход (сообщить роль в json)? Если да, то как json должен относиться к информации о ролях?

Я постараюсь объясниться. Во-первых, извините, я не являюсь носителем английского языка.

Я хочу создать нового пользователя объекта, отображающего json, полученный из сообщения HTTP-запроса. Проблема в том, что у меня есть внутренний объект из моей модели с именем role. Роли всегда либо общие, либо администратор. Затем я хочу сослаться на уже созданный объект роли.

Итак, я хочу знать, как указать роль моего пользователя. Следует учитывать, что модель не может быть изменена из-за некоторых внутренних ограничений команды. Я не знаю, является ли правильный подход к успокоению отправкой информации о ролях в json. Как бы вы справились с этой задачей?

Мой код

Контроллер класса

@RestController
public class UserController {
    @RequestMapping(method=RequestMethod.POST, value = "/users", produces = "application/json")
    public @ResponseBody ResponseEntity<EntityUser> create(@Validated @RequestBody EntityUser user)
    {
        return new ResponseEntity<>(userService.add(user), HttpStatus.CREATED);
    }
}

Класс обслуживания

@Service
public class UserService {
    public EntityUser add(EntityUser user)
    {
        if (userRepository.findByName(user.getName()) == null)          
            return userRepository.save(user);
        return null;
    }
}

Мой простой объект EntityUser (ему сопоставляется json).

@Entity
public class EntityUser {

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "user_sequence")
    private long id;

    @Column(name = "name")
    @NotNull
    private String name;

    @Column(name = "email", unique = true)
    @NotNull
    private String email;

    @ManyToOne(fetch=FetchType.EAGER)
//  @NotNull
    private EntityRole role;

...

}

и, наконец, мой класс EntityRole

@Entity
public class EntityRole {

    @Id
    @GeneratedValue(strategy=GenerationType.SEQUENCE, generator = "role_sequence")
    private long id;    

    @NotNull
    private String label;

    @NotNull
    private String permission; 
  ...
 }

Почему вы не принимаете UserCreateRequest, который включает информацию о пользователе и ролях, как RequestBody в контроллере? Таким образом, вы можете создать пользователя с ролью.

Emre Savcı 25.08.2018 08:56
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
1
1
38
0

Другие вопросы по теме