salto regulares operadores linea expresiones grails groovy tags tokenize

regulares - operadores grails



¿Cómo analizar, persistir y recuperar una cadena con etiquetas separadas por espacios? (2)

Aproximadamente, algo como esto:

class Post { static hasMany [tags:Tag] } class Tag { static belongsTo = Post static hasMany [posts:Post] } class someService { def createPostWithTags(name, desc, tags) { def post = new Post(name: name, desc: desc).save() tags.split('' '').each { tagName -> def tag = Tag.findByName(tag) ?: new Tag(name: tagName) post.addToTags(tag).save() } } }

Mi base de datos consta de 3 tablas (una para almacenar todos los elementos, una para las etiquetas y una para la relación entre las dos):

Tabla: Columnas de publicaciones: PostID, Nombre, Desc

Tabla: Columnas de etiquetas: TagID, Nombre

Tabla: columnas PostTag: PostID, TagID

¿Cuál es la mejor manera de guardar un espacio separado de cadenas (por ejemplo, "inteligente divertido maravilloso") en las 3 tablas de la base de datos que se muestran arriba?

En última instancia, también necesitaría recuperar las etiquetas y volver a mostrarlas como una cadena. ¡Gracias!


Si tiene una tabla de etiquetas, ¿no tendría una fila para cada etiqueta?

tag.id = 1; tag.name = ''smart'' tag.id = 2; tag.name = ''funny'' tag.id = 3; tag.name = ''wonderful''

En Groovy / Grails, los recuperarías como una lista, posiblemente concatenándolos en una lista separada por espacios para su visualización.

A menos que realmente esté malinterpretando la pregunta, Groovy / Grails / GORM manejará esto con poco o ningún código con el andamiaje predeterminado, no se requiere codificación real.