用于过滤List-Property的Spring Jpa自定义查询

时间:2015-04-29 09:10:49

标签: java spring jpa repository

我有一个名为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);
}

0 个答案:

没有答案