映射hasMany关系并保存相关数据

Posted

技术标签:

【中文标题】映射hasMany关系并保存相关数据【英文标题】:Mapping hasMany relation and saving the related data 【发布时间】:2014-04-25 05:07:13 【问题描述】:

我有两个域类 Question 和 Tag。 问题与标签有“hasMany 关系”。

我正在尝试使用一些标签保存问题,但错误消息是 “无法将 java.lang.String 类型的属性值转换为属性标记所需的 com.org.Tag 类型;嵌套异常是 java.lang.IllegalStateException:无法将 [java.lang.String] 类型的值转换为所需类型 [ com.org.Tag] 用于属性标签:未找到匹配的编辑器或转换策略“

如何从我的 UI 中将标签列表发送到 QuestionController 以及如何保存问题与标签的关系

【问题讨论】:

你能告诉我你的问题和标签域是什么样的吗?您保存这些域的代码也会有所帮助。 尝试将 'belongsTo' 添加到 'many' 域类。另外,请添加您的 class/es 定义 【参考方案1】:

您目前拥有 静态 hasMany = [tags:Tag]

但我相信您可能将其直接存储为字符串

questionInstance.tags = ['tag1', 'tag2',...]

相对于

questionInstance.tags = [new Tag(name: tag1), new Tag(name: tag2),...]

我跳过了标签值的循环以向您展示隐含的内容。希望这会有所帮助。

【讨论】:

以上是关于映射hasMany关系并保存相关数据的主要内容,如果未能解决你的问题,请参考以下文章

在 HasMany Eloquent 关系中保存多个 ID

CakePHP 模型关联 HasMany - 保存错误

Ember 数据:为啥 hasMany 和 belongsTo

将 hasMany = [field:String] 映射到数据库字段 TEXT

如何同步hasMany关系上的子表数据?

CakePHP - 在模型中查找没有 hasMany 关系的 hasMany 关联?