Hibernate / SQL Server 并尝试使用 newsequentialid

Sea*_*ean 5 java sql-server hibernate

早上好,

我在 SQL Server 中有一个表,它使用 newsequentialid() 作为主键的默认值。在休眠之前,它在保持按键顺序方面效果很好,但我似乎找不到任何允许我继续使用它的休眠配置设置。

我确实遇到了一个巧妙的解决方案,其中涉及实现 IdentifierGenerator 来获取下一个顺序键(这是通过存储过程完成的),然后在我的表上设置键,如下所示:

@Id
@GenericGenerator(name = "generator", strategy = "com.test.test.helpers.PrimaryKeyGenerator")
@GeneratedValue(generator = "generator")
@Column(name="MyID", columnDefinition="uniqueidentifier", nullable=false, unique=true)
private String MyID;
Run Code Online (Sandbox Code Playgroud)

然而,这样做的缺点是,现在每次我持久保存一个新对象时,它都会执行一次额外的选择。我还使用了一个连接池,我确认我无法自动连接到该类,所以我也错过了这个好处。

让我知道你的想法,说实话,我对 SQL Server 很陌生,甚至对 Hibernate 也很陌生,所以是的,我很容易错过明显的:)

谢谢!