【发布时间】:2021-05-18 11:19:48
【问题描述】:
我在 Spring Boot 应用程序中有两个实体 Estate 和 PropertyTags。 Estate 实体与 PropertyTag 具有多对多关系(PropertyTag 也被其他实体使用)
这是庄园实体:
@Entity
public class Estate{
@Id
private Long id;
.
.
@ManyToMany
private Set<PropertyTag> propertyTags;
.
.
// other properties
}
还有 PropertyTag 类:
@Entity
public class PropertyTag{
@Id
private Long id;
private String tagName;
// getters and setters
}
上述关系创建了3个数据库表,其中一个表用于关系的外键。
我需要一个存储库方法(或查询)来检索一个 Estate,该 Estate 将采用一个 Estate Id 和 property 标签对象的参数。
我尝试使用 hibernate 关键字如下:
public interface EstateRepository extends JpaRepository<Estate, Long> {
Optional<Estate> findByIdAndPropertyTagsContaining(Long estateId, PropertyTag childTag);
}
但这没有用。
我不想通过其 ID 检索一个庄园,并手动循环其属性标签以检查其集合中是否存在标签。我觉得这可以通过查询数据库来完成
我不太擅长编写自定义查询。我需要查询方面的帮助才能做到这一点。
谢谢。
【问题讨论】:
标签: spring-boot jpa