【发布时间】:2020-06-06 12:55:52
【问题描述】:
大家, 我已经为自己构建了两个正在流行的类。
加法类
@Entity
@Table(name = "additive", schema = "dbo")
@Data
@NoArgsConstructor
public class Additive{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "additive_id")
private Integer id;
@ManyToOne(targetEntity = AdditiveType.class, fetch = FetchType.LAZY)
@JoinColumn(name = "additive_type_id")
private AdditiveType additiveType;
private String description;
private BigDecimal price;
}
和类型的类
@Entity
@Table(name = "additive_type", schema = "dbo")
@Data
@NoArgsConstructor
public class AdditiveType{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "additive_type_id")
private Integer id;
@OneToMany(targetEntity = Additive.class, fetch = FetchType.LAZY)
@JoinColumn(name = "additive_type_id")
private Set<Additive> additives;
private String description;
}
当我尝试使用 thymeleaf 显示代码时
<div th:each="aType:${types}">
<h2 th:text="${aType.description}">type</h2>
<div>
<div th:each="additive:${aType.additives}">
<div>
<img alt="${additive.description}"
src="...">
<div>
<h5 th:text="${additive.description}">additive description</h5>
</div>
<div>
<form method="post"
th:action="...">
<input name="id" th:value="${additive.id}" type="hidden"/>
<button type="submit">select this</button>
</form>
</div>
</div>
</div>
</div>
</div>
我从一个表additive 一次从另一个additive_type 对数据库进行无休止的查询,即使提取类型被标记为惰性fetch = FetchType.LAZY
你如何解决这个问题?
更新
不幸的是,@JsonIgnoreProperties 和 @JsonIgnore 都没有导致循环查询中断。我在其余服务中使用了这些注释,它在那里工作。在 thymeleaf,它并没有带来预期的效果。
【问题讨论】: