Ceci est dans le code 2.5.6 grails. J'ai une classe de domaine qui utilise l'héritage. L'une des sous-classes contient une liste de chaînes stockées dans la variable values
. Lorsque vous appelez le .save()
, la classe de domaine elle-même enregistre correctement avec le comportement d'héritage correct, mais les valeurs ne sont pas enregistrées. Voici mes classes de domaine:Grails Domain Class Liste de chaînes non persistante
abstract class Condition implements ICondition, IMarshaler {
String field;
static mapping = {
tablePerHierarchy false;
}
...
}
class ListCondition extends Condition {
static hasMany = [values: String];
List<String> values;
...
}
tentez d'enregistrer une nouvelle condition de liste et l'obtenir à nouveau de la base de données montre qu'il n'y a pas de valeurs.
ListCondition condition = new ListCondition(field: 'someField', values: ['test', 'otherTest'])
condition.save()
println ListCondition.getAll()[0].values.size() // Prints 0
try condition.save (failOnError: true) qui vous donnera un stacktrace s'il y a une erreur – chim