【发布时间】:2021-12-30 20:22:49
【问题描述】:
我的“团队”端点工作正常,我正在收到来自其他客户端的响应,但是我无法检索每个团队中的成员。
我的 Json 文件看起来像这样:
{
"id": 5,
"teamName": "OUTLIERS",
"year": 2021,
"teamLead": {
"name":"bbb",
"status":"ABC"
}, "members":[
{},{},{}
]
团队终点:
@GetMapping(path = **"/{id}/members")**
public List<Member> getTeamMembers(@PathVariable Long id) {
//System.out.println(team.getMembers().size());
List<Member> members = teamRepo.getOne(id).getMembers();
return members;
}
// ----- Member Pojos ---
package org.itpn.web.pojos;
import lombok.Data;
@Data
public class MemberVO {
private Long memberId;
String firstName;
String lastName;
String membershipId;
Long primaryPhone;
String whatsappPhone;
String emailAddress;
boolean active;
}
在上面的代码根目录是 "/teams" ,我正在尝试从 team/id/members 资源中获取成员。
【问题讨论】:
-
你能分享一下回购吗?
-
它看起来像是 Team 实体上 members 字段的延迟初始化,但需要更多上下文。你使用数据库和 Hibernate 吗?
-
@VitalyKolesnikov 是的,获取类型是 = Lazy,我使用的是 Mysql 和 Spring Hibernate。
-
` @Entity @Data @Table(name = "teams") public class Team { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "team_id") private Long id; @Column(name = "team_name") 字符串团队名称; @ManyToMany(cascade = {CascadeType.DETACH,CascadeType.MERGE, CascadeType.REFRESH,CascadeType.PERSIST},fetch = FetchType.LAZY) @JoinTable(name = "member_teams", joinColumns = @JoinColumn(name = "team_id"), inverseJoinColumns = @JoinColumn(name = "member_id")) //@JsonIgnore private List
members; } ` -
在 cmets 部分编写代码不是一个好主意。请将您的项目上传到 Github 并提供链接。这样每个人都可以在 IDE 中看到整个项目并找到问题所在。
标签: java json spring-boot rest maven