vendredi 6 mars 2015

Play Framework 2.3 How to add unique constraint to sample application

Given the Play Framework 2.3 Computer Database sample application, I would like to practice adding a unique constraint on an attribute. Let's say I want the name attribute of the Computer class to be unique. I've tried to do this by adding a validate() function (and a getter) to Computer.java:



public List<ValidationError> validate() {

List<ValidationError> errors = new ArrayList<ValidationError>();

if(Computer.find.where().eq("name", getName()).findRowCount() != 0){
errors.add(new ValidationError("name", "Name must be unique. That value is already taken."));
}

return errors;
}

public String getName() {
return name;
}


This check works when creating new records in the database, however, this now causes a validation error when you update a Computer object but don't change the name. Is there a way to add a uniqueness constraint, similar to Rails? How can I do this in Play?


Thanks!


Aucun commentaire:

Enregistrer un commentaire