Spring Boot: Создание объектов JPA из RAW JSONJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Spring Boot: Создание объектов JPA из RAW JSON

Сообщение Anonymous »

Я строю API REST, используя Spring Boot и Hibernate. Теперь я хочу создать метод поста, который получает JSON. После некоторых подтверждений я хочу сохранить этот объект как новую сущность в моем БД. Мне было интересно, как преобразовать карту атрибутов в новый пользовательский объект? У меня есть следующие классы:
user.java
@Entity
@Table(name="users")
@JsonIdentityInfo(generator= ObjectIdGenerators.IntSequenceGenerator.class, property="id")
public class User {

@Transient
Logger logger = LogManager.getLogger(getClass());

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int ID;

@NotNull
private String username;

@NotNull
private String Last_Name;
@NotNull
private String First_Name;

private String Title;

//....
}
usercontroller.java < /p>
@PostMapping("/user")
public ResponseEntity test(@RequestBody Map object) throws Exception {
try {
userService.createAccount(object);
} catch (IllegalArgumentException e) {
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(e.getMessage());
}
return ResponseEntity.ok("Account was added successfully");
}

userservice.java
public void createAccount(Map accountObject) throws Exception {
logger.trace("Entering createAccount(). account=" +accountObject);
User user = new User( ??? );
userRepository.save(user);
}

< /code>
Я думал о создании нового конструктора в user.java, который отображает каждый мапенток на поле, но мне было интересно, есть ли лучший подход? < /p>
public User(Map fieldsMapping) {
this(
getValue(fieldsMapping, "username", String.class),
getValue(fieldsMapping, "last_name", String.class),
getValue(fieldsMapping, "first_name", String.class),
);
}

// Helper method for type-safe value extraction.
private static T getValue(Map map, String key, Class clazz) {
Object value = map.get(key);
if (value == null) {
return null;
}
return clazz.cast(value);
}


Подробнее здесь: https://stackoverflow.com/questions/794 ... m-raw-json
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»