标签: sequence-generators

Spring Boot Hibernate 未获取 use-new-id-generator-mappings 属性

我正在将我的项目升级到使用 Hibernate 5.3.18 的 Spring Boot 2.1.18。

以前,我的实体看起来像这样,并且会使用 SequenceHiLoGenerator:

@Entity
@Table(name = "group_link")
@SequenceGenerator(name = "group_link_seq", sequenceName = "group_link_seq")
public class GroupLinkEntity extends BaseObject {

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "group_link_seq")
    @Column(name = "group_link_id", unique = true, nullable = false)
    private Long id 
}
Run Code Online (Sandbox Code Playgroud)

现在,默认情况下,在 Hibernate 5 中,它使用 SequenceStyleGenerator,这会导致约束冲突,因为我的增量大小为 1,默认的 allocateSize 为 50。

为了保持兼容性,建议设置此属性:

spring.jpa.properties.hibernate.use-new-id-generator-mappings: false
Run Code Online (Sandbox Code Playgroud)

我这样做了,但似乎不需要,因为仍然使用 SequenceStyleGenerator。根据我的理解,这应该会导致它使用 SequenceHiLoGenerator。这是不正确的吗?

但是,如果我将实体修改为如下所示,它将按预期工作,复制我之前拥有的功能。

@Entity
@Table(name = "group_link")
@GenericGenerator(
        name = "group_link_seq",
        strategy = "org.hibernate.id.SequenceHiLoGenerator",
                parameters = {
                           @Parameter(name = "sequence_name", value = …
Run Code Online (Sandbox Code Playgroud)

hibernate hilo sequence-generators spring-boot hibernate-5.x

3
推荐指数
1
解决办法
1万
查看次数

高效的可扩展序列生成器实现

问题:
我需要实现多个共享序列生成器,将被 50-100 个 Tomcat 服务器使用。每个序列生成器应从 1 开始,并在每次请求后加 1。序列生成器实现应该有原子增量命令。Java 客户端应该可用。

规模:
多达 50000 个序列生成器被积极使用,对于它们中的每一个,我们预计在 5-10 秒内有一个增量请求。每秒最多 20000 个请求
50-100 个 java 客户端(Tomcat 服务器)。对序列生成器的访问在这些服务器之间共享。重要提示:只有 2 个客户端使用相同的序列生成器。
50-100 次 - 每个序列生成器的平均使用次数。
24 小时 TTL - 生成器最多应在创建后 24 小时后清理 - 因此实际上可能有超过 50000 个序列生成器,但预计最多只能有 50000 个同时主动接收请求。

性能:
<1ms 更可取的平均响应时间。平均超过 2ms 肯定不够好。

我们排除了 Oracle 的 Sequence 对象。
我们目前正在考虑 Redis 和 Memcached。
两者都很快。

推荐/足够好的实现是什么?
是否有其他更好的技术用于此目的?

另一个重要问题:
incr、Redis 或 Memcached 哪个性能更好?

谢谢

java memcached redis sequence-generators

2
推荐指数
1
解决办法
3776
查看次数

异步python itertools链多个生成器

有关更新的问题:

假设我有2个处理生成器函数:

def gen1(): # just for examples,
  yield 1   # yields actually carry 
  yield 2   # different computation weight 
  yield 3   # in my case

def gen2():
  yield 4
  yield 5
  yield 6
Run Code Online (Sandbox Code Playgroud)

我可以用itertools链接它们

from itertools import chain

mix = chain(gen1(), gen2())
Run Code Online (Sandbox Code Playgroud)

然后我可以用它创建另一个生成器函数对象,

def mix_yield():
   for item in mix:
      yield item
Run Code Online (Sandbox Code Playgroud)

或者只是如果我只是想next(mix),它就在那里。

我的问题是,我该如何做异步代码中的等效代码?

因为我需要它来:

  • 返回收益率(一个接一个),或使用next迭代器
  • 最快的解决方案收益率最高(异步)

上一页 更新:

经过实验和研究后,我发现aiostream库声明为itertools的异步版本,因此我做了什么:

import asyncio
from aiostream import stream

async def gen1(): 
     await asyncio.sleep(0) 
     yield 1 
     await …
Run Code Online (Sandbox Code Playgroud)

python asynchronous sequence-generators python-3.x python-asyncio

2
推荐指数
1
解决办法
480
查看次数

如何在java中生成两个值之间的序列?

我有两个值是:

firstval=200.000 
Secondval=399.999,
Run Code Online (Sandbox Code Playgroud)

我必须生成一个数字,这样当第一个小数部分应该递增直到999整数部分时,接下来整数部分应该递增,然后小数部分重置为000并开始为新数字递增。这会发生直到399. 喜欢

200.001,200.002.....200.999,201.000,201.002....399.998,399.999"

java sequence sequence-generators

0
推荐指数
1
解决办法
2931
查看次数

在C#中生成字母顺序的逻辑

顺序应该是这样的.
AZ,AA-AZ,BA-BZ,CA-CZ,.......,ZA-ZZ
ZZ之后它应该从AAA开始.
然后是AAAZZZ再到AAAAZZZZ等等.

这个序列非常类似于Excel表格.

编辑:添加了我的代码

        private void SequenceGenerator()
    {
        var numAlpha = new Regex("(?<Numeric>[0-9]*)(?<Alpha>[a-zA-Z]*)");
        var match = numAlpha.Match(txtBNo.Text);

        var alpha = match.Groups["Alpha"].Value;
        var num = Convert.ToInt32(match.Groups["Numeric"].Value);
        lastChar = alpha.Substring(alpha.Length - 1);

        if (lastChar=="Z")
        {
            lastChar = "A";
            txtBNo.Text = num.ToString() + "A" + alpha.Substring(0, alpha.Length - 1) + lastChar;
        }

        else
        {
            txtBNo.Text = num.ToString() + alpha.Substring(0, alpha.Length - 1) + Convert.ToChar(Convert.ToInt32(Convert.ToChar(lastChar)) + 1);
        }
    }
Run Code Online (Sandbox Code Playgroud)

这就是我所做的.但是,我知道这是错误的逻辑. …

c# sequences alphabetical sequence-generators sequencing

-8
推荐指数
1
解决办法
1244
查看次数