Jpa Springboot controller 给前台传参,实体关联实体 ,关联实体无法前台获取问题 @JsonBackReference

今天做vue2  ,springboot jpa 前后台分离项目,遇到无法获取当前关联实体的问题,如下:

@Entity
@Table(name="rd_project_researcher")
public class RdProjectResearcher implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	private Integer id;

	@Column(name="create_id")
	private Integer createId;

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name="create_time")
	private Date createTime;


	@Column(name="is_delete")
	private Integer isDelete;

	
	@ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "projectId")
    @JsonBackReference
    private RdProject rdProject;

    。。。

}

实体代码如上,setget方法删掉了,篇幅过长

controller

@RequestMapping("/selectProject")
	public JsonResult selectProject(ModelMap modelMap, HttpSession session, HttpServletRequest request) {
		List rdprs = rdProjectResearcherService
				.selectProjectResearchersByUserId(super.getAuthUser().getId());

		return super.successResult(rdprs);  //直接返回前台vue工程

	}

只能获取到RdProjectResearcher  信息,project信息无法获取,

因为实体里面这个注解

@JsonBackReference和@JsonManagedReference:这两个标注通常配对使用,通常用在父子关系中。@JsonBackReference标注的属性在序列化(serialization,即将对象转换为json数据)时,会被忽略(即结果中的json数据不包含该属性的内容)。

去掉这个注解,就可以获取红框部分数据了
Jpa Springboot controller 给前台传参,实体关联实体 ,关联实体无法前台获取问题 @JsonBackReference_第1张图片

你可能感兴趣的:(java)