@@ -42,20 +42,22 @@ public GetObjectResponse get(GetObjectRequest request) {
4242 .and (VSS_DB .KEY .eq (request .getKey ())))
4343 .fetchOne ();
4444
45+ final KeyValue keyValue ;
46+
4547 if (vssDbRecord != null ) {
46- return GetObjectResponse .newBuilder ()
47- .setValue (KeyValue .newBuilder ()
48- .setKey (vssDbRecord .getKey ())
49- .setValue (ByteString .copyFrom (vssDbRecord .getValue ()))
50- .setVersion (vssDbRecord .getVersion ())
51- .build ())
48+ keyValue = KeyValue .newBuilder ()
49+ .setKey (vssDbRecord .getKey ())
50+ .setValue (ByteString .copyFrom (vssDbRecord .getValue ()))
51+ .setVersion (vssDbRecord .getVersion ())
5252 .build ();
5353 } else {
54- return GetObjectResponse .newBuilder ()
55- .setValue (KeyValue .newBuilder ()
56- .setKey (request .getKey ()).build ())
57- .build ();
54+ keyValue = KeyValue .newBuilder ()
55+ .setKey (request .getKey ()).build ();
5856 }
57+
58+ return GetObjectResponse .newBuilder ()
59+ .setValue (keyValue )
60+ .build ();
5961 }
6062
6163 @ Override
@@ -66,13 +68,15 @@ public PutObjectResponse put(PutObjectRequest request) {
6668 List <VssDbRecord > vssRecords = new ArrayList <>(request .getTransactionItemsList ().stream ()
6769 .map (kv -> buildVssRecord (storeId , kv )).toList ());
6870
69- VssDbRecord globalVersionRecord = buildVssRecord (storeId ,
70- KeyValue .newBuilder ()
71- .setKey (GLOBAL_VERSION_KEY )
72- .setVersion (request .getGlobalVersion ())
73- .build ());
71+ if (request .hasGlobalVersion ()) {
72+ VssDbRecord globalVersionRecord = buildVssRecord (storeId ,
73+ KeyValue .newBuilder ()
74+ .setKey (GLOBAL_VERSION_KEY )
75+ .setVersion (request .getGlobalVersion ())
76+ .build ());
7477
75- vssRecords .add (globalVersionRecord );
78+ vssRecords .add (globalVersionRecord );
79+ }
7680
7781 context .transaction ((ctx ) -> {
7882 DSLContext dsl = ctx .dsl ();
@@ -99,11 +103,9 @@ private Query buildPutObjectQuery(DSLContext dsl, VssDbRecord vssRecord) {
99103
100104 private Insert <VssDbRecord > buildInsertRecordQuery (DSLContext dsl , VssDbRecord vssRecord ) {
101105 return dsl .insertInto (VSS_DB )
102- .select (dsl .select (val (vssRecord .getStoreId ()), val (vssRecord .getKey ()),
103- val (vssRecord .getValue ()), val (1 ))
104- .whereNotExists (dsl .selectOne ().from (VSS_DB )
105- .where (VSS_DB .STORE_ID .eq (vssRecord .getStoreId ())
106- .and (VSS_DB .KEY .eq (vssRecord .getKey ())))));
106+ .values (vssRecord .getStoreId (), vssRecord .getKey (),
107+ vssRecord .getValue (), 1 )
108+ .onDuplicateKeyIgnore ();
107109 }
108110
109111 private Update <VssDbRecord > buildUpdateRecordQuery (DSLContext dsl , VssDbRecord vssRecord ) {
0 commit comments