Spring 数据:@ElementCollection 注解的字符串查询列表

Spring Data: Query list of string annotated with @ElementCollection

如果我有一个具有这种结构的实体:

@Entity
public class RecipeRaw {
    @Id
    @GeneratedValue
    Long id;

    @ElementCollection
    List<String> listOfIngredients=new LinkedList<String>();

我想获得一个列表,其中包含所有包含单词 X 的成分。怎么做?

例如,如果单词是牛肉,我想获取成分列表,例如 'ground beef' 、 'dried beef with salt' 等等。

我试过了

@Query("select ings_temp from 
        (select rr.listOfIngredients ings_temp from RecipeRaw rr) ings 
        where ings LIKE '?1'")

但这会引发错误。有什么简单的方法可以做这个查询吗?

我用这个解决了

@Query("SELECT DISTINCT t FROM RecipeRaw rr JOIN rr.listOfIngredients t "
            + "WHERE t LIKE CONCAT('%', :ing_name, '%')")
    List<String> findIngredientsByLikeName(@Param("ing_name") String name);