我正在编写一个Web应用程序,其中URL中的用户可以看到一些ID。该应用程序旨在供拥有每个帐户的更多用户使用。然后,帐户可以拥有项目,每个项目都有任务。
现在,我不希望用户使用ID为24876创建他们的第一个项目(或任何正常生成的ID),而是要有一个“漂亮的”顺序标识符另外生成的主键(主要是因为操作具有非复合标识符的实体更简单)。我们将这些顺序ID称为viewIds。
对于每个不同的“父”标识符,ViewID将从1开始(对于项目,这将是一个帐户)。组合(accountId,projectViewId)是唯一的,以及(projectId,taskViewId)等。
我的问题是:如何生成这些viewIds?我在考虑使用TableGenerator机制,但是这个机制也可以用于非标识符列吗?
但最重要的是,在多个应用程序服务器使用相同数据库的环境中生成此类ID的最佳方法是什么(理想情况下,无需让它们直接与彼此通信)?是否可能已经实现了TableGenerator或实现上述功能的实用程序?
答案 0 :(得分:0)
好吧,这是我最终采用的解决方案:
我选择了一种基于数据库的方法,而不是依靠Hibernate / JPA来管理这些“漂亮的”ID,而不是
我不确定的一件事是它在例如数据库的主 - 主复制,可以使用两个数据库服务器。但对于应用程序服务器复制,这应该可以完成这项工作。