Ich habe eine Tabelle mit vielen zu eins Beziehung. Dann habe ich versucht, Daten über den Controller zur Datenbank hinzuzufügen. In meinem Fall gibt es zwei Modelle genannt,Wie füge ich automatisch Daten zur Referenztabelle in Ebean Java Play hinzu?
Post.java
@OneToMany(mappedBy = "post")
private List<PostText> postBody;
PostText.java
@ManyToOne(fetch = FetchType.LAZY)
@JoinTable(name="post")
@JoinColumn(name = "post_id", referencedColumnName = "post_id")
@NotNull
private Post post;
die Daten einzufügen Ich habe versucht,
@BodyParser.Of(BodyParser.Json.class)
public Result add() {
JsonNode jsonNode = request().body().asJson();
User user = userDAO.findByUsername(jsonNode.findPath(StringLiterals.USERNAME_KEY).textValue());
if (user == null) {
return badRequest(JSONService.toJsonNode(new ResponseWrapper<>(
jsonNode.findPath(StringLiterals.USERNAME_KEY).textValue()
.concat(ResponseMessages.USER_NOT_FOUND), null)));
}
Transaction transaction = Ebean.beginTransaction();
try {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.enable(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY);
Post post = objectMapper.treeToValue(jsonNode, Post.class);
post.setUser(user);
// Use JDBC batch API with a batch size of 100
transaction.setBatchSize(4);
// Don't bother getting generated keys
transaction.setBatchGetGeneratedKeys(false);
// Skip cascading persist
transaction.setPersistCascade(false);
postDao.add(post);
this.post = post;
Ebean.commitTransaction();
return ok("Done");
} catch (IOException e) {
return badRequest(e.getLocalizedMessage());
} finally {
Ebean.endTransaction();
}
}
Dies funktioniert nur für add da ta nur in post
Tabelle. Es fügt keine Daten zur post_text
Tabelle hinzu. Wie kann ich Daten zu beiden Tabellen mit E-Bean hinzufügen?