【问题标题】:Saving data by grails domain without id通过没有id的grails域保存数据
【发布时间】:2014-11-18 10:30:15
【问题描述】:

我有域类,我在其中将 id 声明为字符串,并且在映射中 id 映射到 ROWID。我不希望该 id 参与插入操作。 但是,在通过域坚持时,我收到如下错误: com.bt.viewer.TCircuitDetails 条目中的空 ID 任何人都可以提供帮助:我需要为 id 提及数据库列吗? 在gorm查询中,插入sql正在为id生成休眠序列,我不能使用 对于任何列。

我可以将 id 分配给数据库中的一个主键列,但 id 仅采用休眠序列,因此我无法将 id 映射到任何列。我无法通过添加新列来更改表以适应id 值。

解决办法是什么,请帮忙

谢谢..

【问题讨论】:

  • 澄清一下:您正在尝试为 id 列生成自己的值,并且根本不希望 Hibernate 以任何名称生成自己的 id?
  • 是的。我想在 id 列中插入一些字母数值,而不是休眠序列。

标签: grails


【解决方案1】:

您需要覆盖 Hibernate 的默认身份生成器 - here 是 Grails 文档中的相关章节,它基本上将您指向 Hibernate 文档。

据我所知,您需要实现自定义 IdentifierGenerator,类似于 this 人为他们的项目所做的那样。

我不知道您为什么要尝试定义自己的 ID,但也许以下更简单的解决方案也适合您:让 Grails/Hibernate 将其 ID 存储到另一列(例如 hibernate_id)然后您可以将id column: 'hibernate_id' 插入mapping 块(请参阅Grails 文档的链接),将id 用于您自己的目的。不过,您需要在任何地方使用DomainClass.findById() 而不是DomainClass.get()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-04
    • 2011-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多