Spring Boot Mapping JSON для установки ссылочного объекта в создаваемое новое - PullRequest
0 голосов
/ 25 августа 2018

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

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

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

Итак, я хочу знать, как указать роль от моего пользователя. Вам следует учесть, что модель нельзя изменить из-за некоторых внутренних ограничений команды. Я не знаю, правильно ли отправлять информацию о роли в 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; 
  ...
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...