2017-10-17 8 views
0

J'ai la créé la classe domaine suivantcontrainte annulable n'a pas d'effet sur la colonne dans la table mysql

class User implements Serializable { 

private static final long serialVersionUID = 1 

String username 
String password 
String mobile 
String email 
boolean enabled = true 
boolean accountExpired 
boolean accountLocked 
boolean passwordExpired 

static belongsTo = [organization : Organization, 
        branch  : Branch, 
        student  : Student] 

Set<Role> getAuthorities() { 
    (UserRole.findAllByUser(this) as List<UserRole>)*.role as Set<Role> 
} 

static constraints = { 
    password blank: false, password: true 
    username blank: false, unique: true 
    organization nullable: true 
    branch nullable: true 
    student nullable: true 
    email nullable: true 
    mobile nullable: true 
} } 

Mais quand je vérifie la table utilisateur dans MySQL, il montre branche encore, l'organisation et étudiant ne NULL

J'ai maintenu l'association hasOne dans les domaines connexes. par exemple

class Organization { ... static hasOne = [user: User] } 

Je doute, ne hasOne aucun effet sur cette

+0

J'ai lâché la db et la relancer, toujours pas d'effet – Abdul

+1

Supprimer les références de 'belongsTo' – injecteer

Répondre

0

hasOne crée une contrainte non nulle. Vous devez utiliser la relation hasMany dans des domaines connexes pour que null ne fonctionne pas.