通过没有id的grails域保存数据

时间:2014-11-18 10:30:16

标签: grails

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

我可以将id分配给数据库中的一个主键列,但id只占用hibernate序列,所以我不能将id映射到任何列。我不能通过添加新列来改变表以容纳id值。

解决方案是什么。请帮忙

谢谢..

1 个答案:

答案 0 :(得分:0)

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

根据我收集的内容,您需要实施自定义IdentifierGenerator,类似于this人为其项目所做的事情。

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