J'ai la table, l'extrait ci-dessous.Hibernate contrainte de valeur non négative
package test;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
@Entity
@Table(uniqueConstraints = { @UniqueConstraint(columnNames = "code")},
name = "coupons")
public class Coupon implements Serializable {
private static final long serialVersionUID = 5534534530153298987L;
@Id
@GeneratedValue
@Column(name = "id")
private long id;
@Column(name = "available_count")
private Integer availableCount = 1;
public Integer getAvailableCount() {
return availableCount;
}
public void setAvailableCount(Integer availableCount) {
this.availableCount = availableCount;
}
}
Comment faire la contrainte pour permettre availableCount
être que non négatif?
:) Je fais maintenant exactement de cette façon, mais il semble moche pour moi - je cherche quelque chose d'hibernate native, par exemple comme dans SQL, nous avons CONSTRAINT – sergtk
J'ai eu des problèmes à appliquer des contraintes dans les setters dans Hibernate. Si vous essayez de charger un objet de la base de données, et 'availableCount' a une valeur négative (idéalement, cela ne se produira pas ... mais la loi de Murphy interviendra, du moins dans mon cas), puis quand Hibernate chargera un objet à partir de la base de données, il appellera cette méthode, l'exception sera levée et le chargement de l'objet échouera. Cela ne vous donne également aucune chance de corriger les données invalides, à part aller directement à la base de données sans utiliser Hibernate. –
Il semble être moche. En fait, je ne connais pas de moyen de beauté pour le faire. –