Toute base de données qui se respecte permet de poser des contraintes.
Generic System le permet également. Abordons dans un premier temps comment les utiliser.
Utilisation des contraintes
Prenons trois contraintes utilisateur et voyons comment les appliquer avec notre exemple maintenant bien connu de Vehicle.
PropertyConstraint
La première contrainte est PropertyConstraint.
Une nouvelle gamme de voiture est récemment apparue sur le marché et ne peut avoir qu’une seule options à la fois. Par chance, c’est justement la contrainte que nous voulons tester !
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
Engine engine = new Engine(); // Create a type Vehicle Generic vehicle = engine.addInstance("Vehicle"); // Create the attribute Options for the type Vehicle Generic options = vehicle.addAttribute("Options"); // Only one value for Options : enable property constraint options.enablePropertyConstraint(); // Create an instance of Vehicle Generic myVehicle = vehicle.addInstance("myVehicle"); // Add values for Options myVehicle.addHolder(options, "music player"); // OK // Persist changes engine.getCurrentCache().flush(); try { myVehicle.addHolder(options, "air conditioning"); } catch (RollbackException e) { assert e.getCause() instanceof PropertyConstraintViolationException; } |
Continue reading Avancé – Utiliser les contraintes de Generic System