显示一对多连接
Show OneToMany connection
我试图显示日历条目类型的对象列表,但没有成功。我使用@OneToMany 和@ManyToOne 断言。如果我用 Postman 调用我的控制器,我“只会”看到我的用户,它也包含我的条目。我如何在不在存储库中进行额外查询的情况下显示此处的所有内容?
万年历:
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
private User user;
用户:
@JsonIgnore
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true)
private List<KalenderEintraege> eintrage = new ArrayList<KalenderEintraege>();
后端(RestController):
@GetMapping("/InsertInto")
public void einfuegen() {
User user = new User();
user.setName("Ben");
KalenderEintraege kalender = new KalenderEintraege();
kalender.setBeschreibung("Test");
kalender.setDatum(new Date());
kalender.setUser(user);
List<KalenderEintraege> listKalender = new ArrayList<KalenderEintraege>();
listKalender.add(kalender);
user.setEintrage(listKalender);
userRepro.save(user);
}
@GetMapping("/All")
public List<User> getUser() {
return (List<User>) userRepro.findAll();
}
两个方向都用 @JsonIgnore
注释,因此它不会显示关系数据,但无论如何都会查询它,请尝试在控制台中使用以下设置激活“show sql”:
// add these in property file and you can see generated sql
spring.jpa.show-sql: true
spring.jpa.properties.hibernate.format_sql=true
但是去掉两个@JsonIgnore
会导致Whosebug报错,可以尝试@JsonIgnoreProperties
注解解决:
@JsonIgnoreProperties("user") // your Table name
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true)
private List<KalenderEintraege> eintrage = new ArrayList<KalenderEintraege>();
@JsonIgnoreProperties("KalenderEintraege") // your Table name
@ManyToOne
@JoinColumn(name = "user_id")
private User user;
我试图显示日历条目类型的对象列表,但没有成功。我使用@OneToMany 和@ManyToOne 断言。如果我用 Postman 调用我的控制器,我“只会”看到我的用户,它也包含我的条目。我如何在不在存储库中进行额外查询的情况下显示此处的所有内容?
万年历:
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
private User user;
用户:
@JsonIgnore
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true)
private List<KalenderEintraege> eintrage = new ArrayList<KalenderEintraege>();
后端(RestController):
@GetMapping("/InsertInto")
public void einfuegen() {
User user = new User();
user.setName("Ben");
KalenderEintraege kalender = new KalenderEintraege();
kalender.setBeschreibung("Test");
kalender.setDatum(new Date());
kalender.setUser(user);
List<KalenderEintraege> listKalender = new ArrayList<KalenderEintraege>();
listKalender.add(kalender);
user.setEintrage(listKalender);
userRepro.save(user);
}
@GetMapping("/All")
public List<User> getUser() {
return (List<User>) userRepro.findAll();
}
两个方向都用 @JsonIgnore
注释,因此它不会显示关系数据,但无论如何都会查询它,请尝试在控制台中使用以下设置激活“show sql”:
// add these in property file and you can see generated sql
spring.jpa.show-sql: true
spring.jpa.properties.hibernate.format_sql=true
但是去掉两个@JsonIgnore
会导致Whosebug报错,可以尝试@JsonIgnoreProperties
注解解决:
@JsonIgnoreProperties("user") // your Table name
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true)
private List<KalenderEintraege> eintrage = new ArrayList<KalenderEintraege>();
@JsonIgnoreProperties("KalenderEintraege") // your Table name
@ManyToOne
@JoinColumn(name = "user_id")
private User user;