public class Medicine as Entity
...
...
@Lob
@ManyToMany
@JoinTable(name = "Medicine_Ingredients")
private Set<Ingredient> ingredientList = new HashSet<>();
Ensuite, j'ai une autre liste comprend des objets Ingrédients. Ce que je veux faire est dans le dépôt, je veux pousser List en tant que paramètre et obtenir des médicaments si sa liste ingredientList contient un paramètre List.Spring Data Jpa Envoyer liste en tant que paramètre de recherche
J'ai essayé de faire cela en tant qu'objets d'itération dans les boucles. Mais je ne pense pas que ce soit une solution propre. Merci d'avance! Mise à jour, ce code bloque comment je gère le problème pour l'instant mais je ne pense pas que ce soit une solution propre. Sera un problème se promener dans tous les médicaments qui viennent d'ici:
medicineRepository.findByTradeNameStartingWithAndManufacturerStartingWith(
medicineSearchModel.getTradeName(),
medicineSearchModel.getManufacturer()
))
---- Bloc de code
List<Medicine> medicineList = new ArrayList<>();
ArrayList<String> sub_ingredients = new ArrayList<>();
for (Ingredient search_ingredient : medicineSearchModel.getIngredientList()) {
sub_ingredients.add(search_ingredient.getId().toString());
}
for (Medicine medicine : medicineRepository.findByTradeNameStartingWithAndManufacturerStartingWith(
medicineSearchModel.getTradeName(),
medicineSearchModel.getManufacturer()
)) {
ArrayList<String> super_ingredients = new ArrayList<>();
for (Ingredient medicine_ingredient : medicine.getIngredientList()) {
super_ingredients.add(medicine_ingredient.getId().toString());
}
if (super_ingredients.containsAll(sub_ingredients)) {
medicineList.add(medicine);
}
}
return medicineList;
Montrez-nous votre exemple de travail simple, afin que nous puissions comprendre ... –
@RajaAnbazhagan Je viens de mis à jour la question, merci! – celnmeh
A '@ ManyToMany' ne peut pas être' @ Lob' !!! Un @ Lob est l'endroit où vous voulez SERIALISE le champ entier dans une seule colonne! –