hibernate - 如何为不重复的数据库实体生成默认名称?

标签 hibernate grails

我需要为数据库实体的新实例生成唯一名称。

现在,一个似乎很容易成为一个好的解决方案的选项是给出一个类似“未命名实体X - ID”的名称,其中 ID 是实例的 ID。这种方法的问题是我们事先不知道 ID。

另一种选择是保存两次 - 一次使用无效名称,例如“未命名的 EntityX - RANDOM_NUMBER;%;”然后使用名称“未命名的 EntityX - ID”再次保存。
这种方法有两个问题:

  • 保存两次似乎不正确。
  • 即使是临时的,使用不正确的名称保存似乎也不正确。

  • 第三个选项是使用“Unnamed EntityX - RANDOM_NUMBER”保存,如果重复,则尝试上面的第二个选项。

    在这种情况下,最佳做法(或常见做法)是什么?我觉得第二种方法是最好的选择。

    详细信息:我正在使用带有 native ID 生成的 grails 2.4.4。

    最佳答案

    最简单的方法是生成唯一标识符并使​​用它。

    UUID.randomUUID().toString()
    

    关于hibernate - 如何为不重复的数据库实体生成默认名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35092607/

    相关文章:

    java - Hibernate 时间戳搜索查询返回空列表

    grails - 条件-针对串联的两列进行搜索

    java - 生产中的 UTF-8 数据请求问题

    grails - Grails:使用 “jumps”在范围内创建选择

    javascript - 使用Google Visualization时出现Javascript错误:无法调用null的 'getElementsByTagName'方法

    grails - 如何排除 grails 全局依赖

    java - 如何使用复合键从 Hibernate 中删除

    java - @OneToOne注解问题(我觉得。。。)

    java - 同一实体的并发更新

    java - 为什么 JPA 规范(包括 2.0)或 Hibernate 扩展不允许您指定生成器,例如@Version 注释的 Oracle 序列