如果我有一个具有这种结构的实体:
@Entity
public class RecipeRaw {
@Id
@GeneratedValue
Long id;
@ElementCollection
List<String> listOfIngredients=new LinkedList<String>();
我希望得到一个包含所有成分的列表,其中包含单词X.怎么做?
例如,如果这个词是牛肉,我想得到一份“碎牛肉”,“加盐牛肉干”等成分清单。
我试过
@Query("select ings_temp from
(select rr.listOfIngredients ings_temp from RecipeRaw rr) ings
where ings LIKE '?1'")
但这会引发错误。有没有简单的方法来进行此查询?
答案 0 :(得分:5)
我解决了这个
@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);