Grails Problema Relacionamento Many-to-Many

Tenho as seguintes classes, User, Projeto , Publicacoes e Artigo,
e quero implementar o relacionamento many-to-many entre User e Publicacoes.

Ao rodar a aplicacao, a tabela user_publication eh criada com com 3 atributos (id, id_usuario e id_publicacao)

Porem na hora em que eu vou salvar uma Publicacao extoura uma excecao de sql (dizendo que o atributo id nao possui valor default)

class User {
String login
String senha
static hasMany = [publicacoes : Publicacoes]
}

public class Projeto{
String name
static hasMany = [publicacoes : Publicacoes ]
}

public class Publicacoes{
String nome
Projeto projeto

static belongsTo = [Projeto , User]
static hasMany = [users : User]
}

public class Artigo extends Publicacoes{
String cidade

}

// classe extra de uniao entre o relacionamento
public class Uniao{
Integer usersId
Integer publicacoesId

static mapping = {
table 'user_publicacoes’
id column : ‘id’ // erro na insercao
usersId column:'usuarios_id’
publicacoesId column:‘publicacoes_id’
}
}

// e o seguinte metodo no CONTROLADOR DO ARTIGO

def save = {
println “–> save artigo”

println "parametros: "
println params
def artigo = new Artigo(params)
println “–Artigo”

println artigo.nome
def proj = artigo.projeto
println proj.name

if(!artigo.hasErrors() && artigo.save()) {
println “–> save artigo if”
//List lista = params.users
def lista = params.artigo.users
for(i in lista)
{
println "–> save artigo if for"
def uniao = new Uniao()
uniao.usersId = i
uniao.publicacoesId = artigo.id
println i
uniao.save() /// NAO SALVA !!!11
println “–> save artigo if for uniao save”
}

flash.message = "Artigo ${artigo.id} created"
redirect(action:show,id:artigo.id)
}
else {
render(view:‘create’,model:[artigo:artigo])
}*/
}
}

// com o seguinte view no artigo

Internal Authors: Internal Authors:

<g:select multiple="multiple"
optionKey="id"
optionValue=“login"
name=“artigo.users"
from=”${User.list()}”
/>

class User {
String login
String senha
static hasMany = [publicacoes : Publicacoes]
}

public class Publicacoes{
String nome
Projeto projeto

static belongsTo = [Projeto , User]
static hasMany = [users : User]
}

Acho que no seu caso voce precisa especificar o mapeamento >> 5.5.2 Custom ORM Mapping.
http://jira.codehaus.org/browse/GRAILS-828
static belongsTo = [Projeto , User] ?