Como definir a exclusividade no nível do banco de dados para uma associação um para muitos?

Meu problema é simples, mas não consegui encontrar nenhuma sintaxe GORM para isso.

Considere a seguinte classe:

class Article {
  String text

  static hasMany = [tags: String]

  static constraints= {
    tags(unique: true) //NOT WORKING
  }

}

eu quero terum nome de tag exclusivo por artigo definido nas minhas restrições, mas não posso fazê-lo com a sintaxe acima. Claramente eu preciso no esquema do DB algo como:

create table article_tags (article_id bigint, tags_string varchar(255), unique (article_id , tags_string))

Como eu posso fazer isso?

PS: Eu também estou preso por definir restrições no tamanho mínimo e máximo da tag

questionAnswers(5)

yourAnswerToTheQuestion