@Override public Object generate(SequenceGeneratorDiscriptor discriptor, Client<?> client, String dataType) { Jedis jedis = ((RedisClient) client).factory.getConnection(); Long latestCount = jedis.incr(((RedisClient) client).getEncodedBytes(discriptor.getSequenceName())); if (latestCount == 1) { return discriptor.getInitialValue(); } else { return (latestCount - 1) * discriptor.getAllocationSize(); } }
private SequenceGeneratorDiscriptor processSequenceGenerator(Class<?> clazz, Field idField, EntityMetadata m, String generatorName) { SequenceGeneratorDiscriptor sgd = null; if (!generatorName.isEmpty()) { SequenceGenerator sequenceGenerator = idField.getAnnotation(SequenceGenerator.class); if (sequenceGenerator == null || !sequenceGenerator.name().equals(generatorName)) { sequenceGenerator = clazz.getAnnotation(SequenceGenerator.class); } sgd = new SequenceGeneratorDiscriptor(sequenceGenerator, m.getSchema()); } else { sgd = new SequenceGeneratorDiscriptor(m.getSchema()); } return sgd; }
Assert.assertNull(keyValue.getTableDiscriptor()); Assert.assertNotNull(keyValue.getSequenceDiscriptor()); Assert.assertEquals(50, keyValue.getSequenceDiscriptor().getAllocationSize()); Assert.assertEquals(1, keyValue.getSequenceDiscriptor().getInitialValue()); Assert.assertEquals("KunderaTest", keyValue.getSequenceDiscriptor().getSchemaName()); Assert.assertEquals("sequence_name", keyValue.getSequenceDiscriptor().getSequenceName()); Assert.assertNull(keyValue.getSequenceDiscriptor().getCatalog()); keyValue = null; Assert.assertNull(keyValue.getTableDiscriptor()); Assert.assertNotNull(keyValue.getSequenceDiscriptor()); Assert.assertEquals(20, keyValue.getSequenceDiscriptor().getAllocationSize()); Assert.assertEquals(80, keyValue.getSequenceDiscriptor().getInitialValue()); Assert.assertEquals("KunderaTest", keyValue.getSequenceDiscriptor().getSchemaName()); Assert.assertEquals("newSequence", keyValue.getSequenceDiscriptor().getSequenceName()); Assert.assertNull(keyValue.getSequenceDiscriptor().getCatalog()); keyValue = null; Assert.assertNull(keyValue.getTableDiscriptor()); Assert.assertNotNull(keyValue.getSequenceDiscriptor()); Assert.assertEquals(50, keyValue.getSequenceDiscriptor().getAllocationSize()); Assert.assertEquals(1, keyValue.getSequenceDiscriptor().getInitialValue()); Assert.assertEquals("KunderaTest", keyValue.getSequenceDiscriptor().getSchemaName()); Assert.assertEquals("sequence_name", keyValue.getSequenceDiscriptor().getSequenceName()); Assert.assertNull(keyValue.getSequenceDiscriptor().getCatalog()); keyValue = null;
@Override public Object generate(SequenceGeneratorDiscriptor discriptor) { Jedis jedis = factory.getConnection(); Long latestCount = jedis.incr(getEncodedBytes(discriptor.getSequenceName())); if (latestCount == 1) { return discriptor.getInitialValue(); } else { return (latestCount - 1) * discriptor.getAllocationSize(); } }