Spring Stiefel: Erstellen von JPA -Unternehmen aus Raw JSONJava

Java-Forum
Anonymous
 Spring Stiefel: Erstellen von JPA -Unternehmen aus Raw JSON

Post by Anonymous »

Ich baue eine Rast -API mit Spring Boot und Winterschlaf. Jetzt möchte ich eine Post -Methode erstellen, die einen JSON erhält. Nach einigen Validierungen möchte ich dieses Objekt als neue Entität in meiner DB speichern. Ich habe mich gefragt, wie ich die Karte von Attributen in eine neue Benutzereinheit umwandeln kann. Ich habe die folgenden Klassen:
user.java

Code: Select all

@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>

Code: Select all

@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

Code: Select all

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

< /code>
Ich habe darüber nachgedacht, einen neuen Konstruktor in user zu erstellen.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);
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post