【发布时间】:2020-04-09 14:55:30
【问题描述】:
Product和ProductTag形成一对多的关系,如下图。
@Entity
public class Product {
@Id
Long id;
@OneToMan(mappedBy = "product")
List<ProductTag> productTags;
}
@Entity
public class ProductTag {
@Id
Long id;
String content;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "product_id")
Product product;
}
现在我有一个 API 可以搜索产品,然后返回它们及其标签。每次我打电话给product.getProductTags(),Hibernate 都会触发一个 SQL 查询。由于 MySQL 服务器离应用服务器较远,所以我想缓存 product.getProductTags() 调用。我如何做到这一点?
【问题讨论】:
-
不要。编写一个急切地获取标签的特定查询。