Grails 如何解析、持久化和检索带有以空格分隔的标记的字符串?

Grails 如何解析、持久化和检索带有以空格分隔的标记的字符串?,grails,groovy,tags,tokenize,Grails,Groovy,Tags,Tokenize,我的数据库由3个表组成(一个用于存储所有项目,一个用于标记,一个用于两者之间的关系): 表:员额 列:PostID、名称、描述 表:标签 列:TagID,Name 表:PostTag 列:PostID、TagID 将空格分隔的字符串(例如“smart Function wonderful”)保存到上述3个数据库表中的最佳方法是什么 最终,我还需要检索标记并再次将其显示为字符串。谢谢 如果您有一个标记表,那么每个标记不是都有一行吗 tag.id = 1; tag.name = 'smart' ta

我的数据库由3个表组成(一个用于存储所有项目,一个用于标记,一个用于两者之间的关系):

表:员额 列:PostID、名称、描述

表:标签 列:TagID,Name

表:PostTag 列:PostID、TagID

将空格分隔的字符串(例如“smart Function wonderful”)保存到上述3个数据库表中的最佳方法是什么


最终,我还需要检索标记并再次将其显示为字符串。谢谢

如果您有一个标记表,那么每个标记不是都有一行吗

tag.id = 1; tag.name = 'smart'
tag.id = 2; tag.name = 'funny'
tag.id = 3; tag.name = 'wonderful'
在Groovy/Grails中,您将以列表的形式检索它们,可能会将它们连接到一个以空格分隔的列表中以供显示


除非我真的误解了这个问题,否则Groovy/Grails/GORM将使用很少或没有代码的默认支架来处理这个问题,不需要真正的编码。

大致来说,类似这样:

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()
        }       
    }

}

你能再详细一点吗?可以在任何字符串列中存储带空格的字符串。您在解析数据和插入数据时遇到问题吗?你好,梅林。我可以将字符串标记为单独的单词,但我不知道从这里开始的最佳方式。我同意,您检索和显示标记是正确的。我想他被困在如何从1个表单字段中提取3个单词并在标记表中插入3条记录的问题上了。是的,我想这就是我想要得到的。但一开始我没能把问题说清楚。我现在将编辑原始问题。看起来“恨”有一个答案感谢恨。这个解决方案很有效。我只需要做一个小改动:def tag=tag.findByName(tag)?:new tag(name:tagName).save()