gpt4 book ai didi

java - 如何使用 JSON 格式发布 ManyToOne 和 OneToOne 实体?

转载 作者:行者123 更新时间:2023-12-01 23:11:32 24 4
gpt4 key购买 nike

我有 comment 实体,其中 user_idproject_id 作为外键。并且评论可以在同一个表中具有父子关系,由parent_commnent_id提及。

import com.fasterxml.jackson.annotation.JsonIgnore;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;

import javax.persistence.*;
import java.util.ArrayList;
import java.util.List;

@Entity
@Table
public class Comment {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "comment_id")
private int commentId;

@ManyToOne
@JsonIgnore
@JoinColumn(name = "project_id")
private Project projectId;

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

@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "user_id", referencedColumnName = "user_id")

private RegisteredUser user;

@ManyToOne
@JsonIgnore
@JoinColumn(name = "Parent_comment_id")
public Comment ParentCommentId;

@OneToMany(mappedBy = "ParentCommentId")
public List<Comment> childComments = new ArrayList<Comment>();

public int getCommentId() {
return commentId;
}

public void setComment(String comment) {
this.comment = comment;
}

public Project getProjectId() {
return projectId;
}

public void setProjectId(Project projectId) {
this.projectId = projectId;
}

public RegisteredUser getUser() {
return user;
}

public void setUser(RegisteredUser user) {
this.user = user;
}

public String getComment() {
return comment;
}

public void setCommentId(int commentId) {
this.commentId = commentId;
}
}

我手动插入了一些数据

INSERT INTO comment (comment, Parent_comment_id, project_id, user_id) VALUES ( 'first comment', null, 1, 1);
INSERT INTO comment (comment, Parent_comment_id, project_id, user_id) VALUES ( 'first child comment', 1, 1, 2);

这会返回给我这个

enter image description here

但我无法通过 postman 发布数据。我已经尝试过了

{
"comment": "third comment",
"userId": 2,
"projectId" : 3,
"parentCommentId" : 2
}

它会插入数据,但将 userIdprojectIdparentCommentId 返回为 null。

我也尝试过这个。

{    
"comment": "third comment",
"user": {
"userId" : 2
}
}

这给了我 500 错误。

最佳答案

我认为您可以简单地发送userId,然后根据userIduser表(您从用户中提到的任何名称)获取详细信息。

为什么要在其沉重的帖子中发送完整的对象,或者您可以使用@Embedded注释。

希望它能起作用。

关于java - 如何使用 JSON 格式发布 ManyToOne 和 OneToOne 实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58374013/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com