Hibernate 如何为不重复的DB实体生成默认名称?
我需要为数据库实体的新实例生成唯一名称 现在,一个看起来似乎很好的解决方案的选项是给出一个名称,如“Unnamed EntityX-ID”,其中ID是实例的ID。这种方法的问题是我们事先不知道ID 另一个选项是保存两次,一次使用无效名称,如“Unnamed EntityX-RANDOM_NUMBER;%;”然后使用名称“Unnamed EntityX-ID”再次保存。 这种方法有两个问题:Hibernate 如何为不重复的DB实体生成默认名称?,hibernate,grails,Hibernate,Grails,我需要为数据库实体的新实例生成唯一名称 现在,一个看起来似乎很好的解决方案的选项是给出一个名称,如“Unnamed EntityX-ID”,其中ID是实例的ID。这种方法的问题是我们事先不知道ID 另一个选项是保存两次,一次使用无效名称,如“Unnamed EntityX-RANDOM_NUMBER;%;”然后使用名称“Unnamed EntityX-ID”再次保存。 这种方法有两个问题: 保存两次似乎不正确 即使是临时的,用不正确的名称保存似乎也是不正确的 第三个选项是使用“Unnamed E
详细信息:我正在使用Grails2.4.4生成本机ID。最简单的方法是生成一个唯一标识符并使用它
UUID.randomUUID().toString()
你为什么要保存数字部分呢?只需将实体中的实用程序getter中的名称与id连接起来。具有唯一名称的意义是什么。在您的情况下,ID应该满足您的要求,这已经是唯一的。@DraganBozanovic每个实体实例都必须具有唯一的名称,以便用户查看!对于新实体实例,ID不可用,但仍必须使用唯一名称将其保存到DB。为此,您只需创建一个临时变量“name”,并重写其getter以返回“Unnamed EntityX-ID”。