Как искать, если bytearray содержит элемент из другого массива - PullRequest
0 голосов
/ 24 марта 2020

У меня есть объект с именем Recipe, и я создал репозиторий, расширяющий JpaRepository, и я хотел бы найти рецепты, содержащие каждый элемент массива поиска для dietLabelList.

@Getter
@Setter
@Entity
@NoArgsConstructor
@RequiredArgsConstructor
@ToString
@Table(name = "recipe")
public class Recipe {

    @Column(name = "id", nullable = false)
    @Id
    @GeneratedValue
    private UUID rid;

    @Column(name = "title", nullable = false)
    private String title;

    @Column(name = "dietLabelList", nullable = false)
    private UUID[] dietLabelList;

}
@Repository
public interface RecipeRepository extends JpaRepository<Recipe, UUID> {

    List<Recipe> findByTitleContaining(String title);
    List<Recipe> findByDietLabelList(UUID[] dietLabels);

}

, например У меня есть рецепт, который имеет такой диетический список, как этот [Balanced], «High-Fiber», «High-Protein»], и findByDietLabelList ([«Balanced», «High-Fibre»]) должен быть в состоянии найти его , Возможно ли что-то подобное с JpaRepository?

1 Ответ

0 голосов
/ 24 марта 2020

Вы можете использовать QueryParam и указать свой пользовательский запрос

import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

@Repository
public interface RecipeRepository extends JpaRepository<Recipe, UUID> {

    List<Recipe> findByTitleContaining(String title);

    @Query(value = "SELECT r FROM Recipe r WHERE r.dietLabels in :dietLabels")
    List<Recipe> findByDietLabelList(@Param("dietLabels") UUID[] dietLabels);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...