[英]JPA TableGenerator behaviour in clustered envionment
我正在为我的项目使用表生成器,以下是相同的代码段。
@GeneratedValue(strategy = GenerationType.TABLE, generator = " TableGenerator")
@GenericGenerator(name = "TableGenerator", strategy = "org.hibernate.id.enhanced.TableGenerator", parameters = {
@Parameter(name = "table_name", value = "TABLE_GENERATOR")}
我知道休眠将为给定实体在内存中缓存最小值和最大值,并在TABLE_GENERATOR中更新最小值和最大值。 假设该值可能是50-100。
但是我不确定在集群环境中JPA / Hibernate表生成器的行为是什么,即将有多个JVM,因此每个JMV中相同的最小/最大值将被存储,在Table:TABLE_GENERATOR中将更新什么值。
我个人还没有在集群环境中使用过TableGenerator,因此认为它应该可以工作,但是由于您碰到的是单个表,因此总是存在并发或事务问题的可能性。
IMO表生成的键仅在您不能使用序列号(大多数平台支持)时才有意义,并且具有很多优点:
如果不能选择序列,这可能会奏效,但我不相信没有漏洞可以解决。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.