1

Salut dire que j'ai échantillon voiture appelé haricot et je veux redéfinir sa séquence de validation:comment cascader GroupSequenceProvider à la liste des membres?

@GroupSequenceProvider(value = CarSequenceProvider.class) 
public class Car{ 
    @NotNull(groups = {groupOne.class}) 
    private Boolean isGood; 

    @Valid 
    private List<Driver> drivers; 

    // getter/setter 
} 

c'est ma classe pilote

public class Driver{ 

    @NotEmpty(groups = {groupTwo.class}) 
    private List<String> skills;  

    //getter/setter 
} 

et va ici mon fournisseur de séquence:

public class CarSequenceProvider implements DefaultGroupSequenceProvider<Car>{ 

    @Override 
    public List<Class<?>> getValidationGroups(Car car) { 
    List<Class<?>> sequence = new ArrayList<Class<?>>(); 
    sequence.add(Car.class); 
    sequence.add(groupOne.class); 

    if(car != null && car.IsGood()){ 
     sequence.add(groupTwo.class); 
    } 
} 

Fondamentalement, je veux seulement que toutes les compétences des pilotes ne soient pas vides si la voiture est bonne. Ce qui se passe actuellement, c'est que @notEmpty n'est jamais appelé car ma redéfinition de séquence n'est pas mise en cascade dans la liste des pilotes. Est-il possible de le faire cascader alors?

Merci beaucoup

Répondre

0

Ici @ConvertGroup entre en jeu qui vous permet lors de la validation en cascade d'utiliser un groupe différent de celui initialement demandé un.

Est-ce que vous avez essayé annotation

Source: example-group-conversion-dedault-to-driver-checks

+0

Salut Oui Je comprends que convertGroup suffit dans mon exemple. Cependant, que se passe-t-il si j'ai une séquence avec plusieurs groupes dans la classe de voiture fournie par le fournisseur et je veux simplement que cette séquence soit héritée par ma classe de conducteur, y a-t-il un moyen d'y parvenir? – user3391672