Dans la classe de domaine de My Grails, je souhaite définir des valeurs par défaut qui persistent dans la base de données. J'utilise MySQL comme base de données. J'ai essayé de faire ceci: mais rien ne fonctionne. Il n'y a pas de valeurs par défaut définies dans la base de données. Qu'est-ce que je dois changer pour que mes valeurs par défaut soient définies correctement? P> p>
3 Réponses :
Si vous êtes sur GRAVES 2.2 ci-dessus, vous pouvez utiliser ParfaitValue. Regardez la réponse de Burt ici Essayez-le, espérons que cela aide:
Class A { Long someValue Long someOtherValue Boolean someBool Boolean someOtherBool static mapping = { someOtherValue defaultValue: 1 someOtherBool defaultValue: true ... } }
C'est ce que j'ai écrit comme question. J'utilise Grails 2.2.2 mais cela ne fonctionne pas.
Cela fonctionne pour 2.3.6 pour tous types mais pas pour Boolean code>. J'ai essayé
defaultValue: 'true' code> et
défaitValue: true code>. Mais dans la table est rempli de
null code>. Je dois utiliser
boolean mycolumn = boolean.true code>
Quelle est votre base de données?
À l'aide de GRAVES 2.5 et MySQL 5.6, il ne semble pas possible de définir une défaillance de la base de données Value pour un booléen ni un booléen. Vrai, "vrai", "vrai", 1, '1', "1", boolean.true - aucun de ces travaux dans la section de cartographie statique.
J'ai constaté que pour quefrairValue fonctionne avec des propriétés de chaîne, je devais mettre des citations doubles autour des guillemets simples et pour quefrairValue Pour fonctionner pour les propriétés numériques, j'ai besoin de mettre des citations doubles autour du nombre ou des valeurs par défaut ne figureraient pas dans le DDL. Donc, par exemple:
static mapping = { myStringProperty defaultValue: "'Cash'" myIntProperty defaultValue: "0" }
Malheureusement, cela ne fonctionne pas pour les booléens (qui sont des champs de bits avec la longueur de 1).
class A { long someValue long someOtherValue boolean someBool = Boolean.TRUE boolean someOtherBool = Boolean.TRUE static mapping = { someValue defaultValue: '1' someOtherValue defaultValue: '1' } } This will work, tested in 2.2.3.
Je dois également définir des colonnes booléennes telles que ceci en 2.3.6 Réglage DefaultValue pour une colonne booléenne dans les mappages ne fonctionne pas.
Ce qui précède ne fonctionne pas pour nous dans Grails 2.5 et MySQL pour les booléens, ne donne toujours aucune valeur par défaut.
Ne fonctionne pas non plus dans MySQL dans GRAILS 3.3 DEFAULTVALUE: FALSE CODE> ou
DEFAULTVALUE: "'FAUX'" " CODE> ou
DEFAUTVALUE:" FAUX ' CODE>