Je développe une petite application sur Grails 1.3.5 et je rencontre ce problème très étrange.Les booléens dans les grails ne sont pas persistés?
Mes classes de domaine comportent des champs typés booléens. Aucun de ces champs n'est conservé lors de la création d'une nouvelle instance (et l'enregistre bien sûr).
Par exemple, j'ai cette classe de domaine « employé », défini comme suit (simplifié):
class Employee {
String name
boolean present
}
Lorsque je crée une nouvelle instance de cette classe et je persiste, le nom est enregistré, mais le booléen actuel n'est pas.
def newEmp = new Employee(name: "me", present: true)
newEmp.save(failOnError: true, flush: true)
Lors de la sauvegarde, aucune erreur n'est générée. Cependant, dans la base de données (j'utilise MySQL) la colonne binaire "present" reste toujours vide.
Ce qui pourrait être à l'origine de cela? Cela arrive le long de toutes mes classes de domaine.
Je n'ai jamais eu de problème avec ça. Peut-être que votre version simplifiée du code ne nous montre pas ce qui pourrait causer l'erreur. Pouvez-vous poster un extrait de code plus grand? Votre champ est-il réellement nommé 'présent'? Ou est-ce autre chose qui pourrait être un mot réservé dans mysql? –
Aussi, que se passe-t-il lorsque vous faites du champ un 'Boolean' (au lieu d'un' boolean' primitif)? Est-ce que cela change le comportement? –