我正在尝试为我的java应用程序编写一些测试,并且我的实体持久性使用oracle的sys_guid()作为主键。连接到oracle时一切正常,但是当我在内存中使用H2进行测试时,以下用于生成作为字符(32)的主要GUID值的语句返回一个大得多的字符串(144)。select rawtohex(sys_guid()) from dual我使用springboot和spring-data和hibernateTokenRecuperacaoSenh
我有一些继承的代码,每次创建实体时都会调用SELECT SYS_GUID() FROM DUAL。这意味着每次插入都有两次对Oracle的调用,一次是获取Guid,另一次是插入数据。我认为这可能有一个很好的理由,例如,Oracle的Guids可能会针对大容量插入进行优化,因此它们可能会试图避免过度的索引树重新平衡。有没有理由使用SYS_GUID而不是在客户机上构建您自己的Guid?