繁体   English   中英

Hibernate 4.x MYSQL多租户ID生成问题

[英]Hibernate 4.x Multi-tenancy ID generation issues with MYSQL

我们正在使用Hibernate 4.x通过每个租户使用单独的DATABASE实现多租户。

我们正在使用Hibernate提供的增量策略来生成ID。

ID生成并非特定于租户。

有什么方法可以限制特定于租户的ID生成,而不是从公共缓存中获取。

我看到的另一个问题是服务器重新启动。

服务器重新启动后,如果对租户1进行了第一个SQL操作,则Hibernate开始缓存从租户1数据库中的Id引用的ID。 如果随后的操作在其他租户上执行并且已经具有Hibernate缓存提供的Id值,则可能会产生冲突。

我本可以使用序列来生成ID,但是MYSQL不支持序列。

有什么方法可以避免从公共缓存中获取ID?

解决此问题的方法之一是使用JPA提供的“身份” ID生成机制。 这会对性能产生影响。 但是,整个租户的ID生成都是正确的。 我已经尝试过这种方法,并且有效。

其他方法是使用使用HiLow算法的基于表的ID生成或基于UUID的ID生成方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM