Skip to content

Commit 0bdc1dd

Browse files
committed
to fix jdbc state update
1 parent fe3e321 commit 0bdc1dd

File tree

4 files changed

+24
-17
lines changed

4 files changed

+24
-17
lines changed

jdbc/src/main/scala/app/softnetwork/persistence/jdbc/query/JdbcStateProvider.scala

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -72,15 +72,25 @@ trait JdbcStateProvider[T <: Timestamped]
7272
*/
7373
override final def updateDocument(document: T, upsert: Boolean = true)(implicit
7474
t: ClassTag[T]
75-
): Boolean = writeToDb(
76-
StateWrapper[T](
77-
document.uuid,
78-
document.lastUpdated,
79-
deleted = false,
80-
Option(document)
81-
),
82-
to_update = true
83-
)
75+
): Boolean = {
76+
var to_update: Boolean = false
77+
if (upsert) {
78+
loadDocument(document.uuid) match {
79+
case Some(_) =>
80+
to_update = true
81+
case _ =>
82+
}
83+
}
84+
writeToDb(
85+
StateWrapper[T](
86+
document.uuid,
87+
document.lastUpdated,
88+
deleted = false,
89+
Option(document)
90+
),
91+
to_update = to_update
92+
)
93+
}
8494

8595
/** Upsert the underlying document referenced by its uuid to the database
8696
*
@@ -188,8 +198,8 @@ trait JdbcStateProvider[T <: Timestamped]
188198
(if (!to_update) {
189199
insert(document.uuid, document.lastUpdated, document.deleted, state)
190200
} else {
191-
alogger.debug(s"Updating document ${document.uuid} with data $state")
192-
update(document.uuid, document.lastUpdated, document.deleted, state)
201+
alogger.debug(s"Updating document ${document.uuid} with data $state")
202+
update(document.uuid, document.lastUpdated, document.deleted, state)
193203
}) && writeToFile(
194204
document,
195205
data

jdbc/testkit/src/main/scala/app/softnetwork/persistence/person/H2PersonTestKit.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package app.softnetwork.persistence.person
22

33
import akka.actor.typed.ActorSystem
4-
import app.softnetwork.persistence.jdbc.query.JdbcOffsetProvider
54
import app.softnetwork.persistence.jdbc.scalatest.H2TestKit
65
import app.softnetwork.persistence.model.StateWrappertReader
76
import app.softnetwork.persistence.person.model.Person
@@ -17,7 +16,7 @@ trait H2PersonTestKit extends JdbcPersonTestKit with H2TestKit with H2Profile {
1716
override def externalPersistenceProvider: ExternalPersistenceProvider[Person] = this
1817
override def person2ExternalProcessorStream: ActorSystem[_] => PersonToExternalProcessorStream =
1918
sys =>
20-
new PersonToJdbcProcessorStreamWithJdbcJournal with JdbcOffsetProvider with H2Profile {
19+
new PersonToJdbcProcessorStreamWithJdbcJournal with H2Profile {
2120
override def config: Config = H2PersonTestKit.this.config
2221

2322
override val forTests: Boolean = true

jdbc/testkit/src/main/scala/app/softnetwork/persistence/person/MySQLPersonTestKit.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package app.softnetwork.persistence.person
22

33
import akka.actor.typed.ActorSystem
4-
import app.softnetwork.persistence.jdbc.query.JdbcOffsetProvider
54
import app.softnetwork.persistence.jdbc.scalatest.MySQLTestKit
65
import app.softnetwork.persistence.model.StateWrappertReader
76
import app.softnetwork.persistence.person.model.Person
@@ -17,7 +16,7 @@ trait MySQLPersonTestKit extends JdbcPersonTestKit with MySQLTestKit with MySQLP
1716
override def externalPersistenceProvider: ExternalPersistenceProvider[Person] = this
1817
override def person2ExternalProcessorStream: ActorSystem[_] => PersonToExternalProcessorStream =
1918
sys =>
20-
new PersonToJdbcProcessorStreamWithJdbcJournal with JdbcOffsetProvider with MySQLProfile {
19+
new PersonToJdbcProcessorStreamWithJdbcJournal with MySQLProfile {
2120
override def config: Config = MySQLPersonTestKit.this.config
2221

2322
override val forTests: Boolean = true

jdbc/testkit/src/main/scala/app/softnetwork/persistence/person/PostgresPersonTestKit.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package app.softnetwork.persistence.person
22

33
import akka.actor.typed.ActorSystem
4-
import app.softnetwork.persistence.jdbc.query.JdbcOffsetProvider
54
import app.softnetwork.persistence.jdbc.scalatest.PostgresTestKit
65
import app.softnetwork.persistence.model.StateWrappertReader
76
import app.softnetwork.persistence.person.model.Person
@@ -17,7 +16,7 @@ trait PostgresPersonTestKit extends JdbcPersonTestKit with PostgresTestKit with
1716
override def externalPersistenceProvider: ExternalPersistenceProvider[Person] = this
1817
override def person2ExternalProcessorStream: ActorSystem[_] => PersonToExternalProcessorStream =
1918
sys =>
20-
new PersonToJdbcProcessorStreamWithJdbcJournal with JdbcOffsetProvider with PostgresProfile {
19+
new PersonToJdbcProcessorStreamWithJdbcJournal with PostgresProfile {
2120
override def config: Config = PostgresPersonTestKit.this.config
2221

2322
override val forTests: Boolean = true

0 commit comments

Comments
 (0)