我有一个名为Item的实体。每个项目都包含许多标签。现在我想在标签内搜索,并获得具有相同标签或组合标签集的应用程序列表。
查询注释仅适用于"字符串标记;"但不是"列出标签;"。例如,我想要匹配标签(游戏,惊悚片)或(教育,12 +)。
我没有线索,因为我使用@Entity。仅使用sql表,我可以使用表__item_tags(fid_item,fid_tag)并且只说" select * where fid_tag =' game'或者fid_tag ='惊悚片')。但即使在这里,我也不知道如何在@Query Annotation中表达这一点。
@Entity
class Item implements Serializable
{
@Id
@GeneratedValue
private Long id;
List<String> tags;
}
public interface ItemRepository extends JpaRepository<Item, Serializable>{
Item findById(long id);
@Query("SELECT a FROM Item a WHERE LOWER(a.Tag) = LOWER(:tag)")
List<Item > findByTag(@Param("tag") String tag);
}