diff --git a/komga/src/main/kotlin/org/gotson/komga/domain/service/ReadListLifecycle.kt b/komga/src/main/kotlin/org/gotson/komga/domain/service/ReadListLifecycle.kt index 9b4d3c69c..37b127856 100644 --- a/komga/src/main/kotlin/org/gotson/komga/domain/service/ReadListLifecycle.kt +++ b/komga/src/main/kotlin/org/gotson/komga/domain/service/ReadListLifecycle.kt @@ -13,6 +13,7 @@ import org.gotson.komga.infrastructure.image.MosaicGenerator import org.gotson.komga.infrastructure.metadata.comicrack.ReadListProvider import org.springframework.context.ApplicationEventPublisher import org.springframework.stereotype.Service +import org.springframework.transaction.annotation.Transactional import org.springframework.transaction.support.TransactionTemplate private val logger = KotlinLogging.logger {} @@ -31,6 +32,7 @@ class ReadListLifecycle( @Throws( DuplicateNameException::class, ) + @Transactional fun addReadList(readList: ReadList): ReadList { logger.info { "Adding new read list: $readList" } @@ -44,6 +46,7 @@ class ReadListLifecycle( return readListRepository.findByIdOrNull(readList.id)!! } + @Transactional fun updateReadList(toUpdate: ReadList) { logger.info { "Update read list: $toUpdate" } val existing = @@ -71,6 +74,7 @@ class ReadListLifecycle( * Add book to read list by name. * Read list will be created if it doesn't exist. */ + @Transactional fun addBookToReadList( readListName: String, book: Book, diff --git a/komga/src/main/kotlin/org/gotson/komga/domain/service/SeriesCollectionLifecycle.kt b/komga/src/main/kotlin/org/gotson/komga/domain/service/SeriesCollectionLifecycle.kt index 2de67f558..d15923163 100644 --- a/komga/src/main/kotlin/org/gotson/komga/domain/service/SeriesCollectionLifecycle.kt +++ b/komga/src/main/kotlin/org/gotson/komga/domain/service/SeriesCollectionLifecycle.kt @@ -11,6 +11,7 @@ import org.gotson.komga.domain.persistence.ThumbnailSeriesCollectionRepository import org.gotson.komga.infrastructure.image.MosaicGenerator import org.springframework.context.ApplicationEventPublisher import org.springframework.stereotype.Service +import org.springframework.transaction.annotation.Transactional import org.springframework.transaction.support.TransactionTemplate private val logger = KotlinLogging.logger {} @@ -27,6 +28,7 @@ class SeriesCollectionLifecycle( @Throws( DuplicateNameException::class, ) + @Transactional fun addCollection(collection: SeriesCollection): SeriesCollection { logger.info { "Adding new collection: $collection" } @@ -40,6 +42,7 @@ class SeriesCollectionLifecycle( return collectionRepository.findByIdOrNull(collection.id)!! } + @Transactional fun updateCollection(toUpdate: SeriesCollection) { logger.info { "Update collection: $toUpdate" } @@ -67,6 +70,7 @@ class SeriesCollectionLifecycle( * Add series to collection by name. * Collection will be created if it doesn't exist. */ + @Transactional fun addSeriesToCollection( collectionName: String, series: Series, diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/SplitDslDaoBase.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/SplitDslDaoBase.kt new file mode 100644 index 000000000..37855f4f4 --- /dev/null +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/SplitDslDaoBase.kt @@ -0,0 +1,21 @@ +package org.gotson.komga.infrastructure.jooq + +import org.jooq.DSLContext +import org.springframework.transaction.support.TransactionSynchronizationManager + +abstract class SplitDslDaoBase { + val dslRW: DSLContext + private val _dslRO: DSLContext + + constructor(dslRW: DSLContext, dslRO: DSLContext) { + this.dslRW = dslRW + this._dslRO = dslRO + } + + val dslRO: DSLContext + get() = + if (TransactionSynchronizationManager.isActualTransactionActive() && !TransactionSynchronizationManager.isCurrentTransactionReadOnly()) + dslRW + else + _dslRO +} diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/AuthenticationActivityDao.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/AuthenticationActivityDao.kt index 0a45be0e8..d6b1aad75 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/AuthenticationActivityDao.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/AuthenticationActivityDao.kt @@ -3,6 +3,7 @@ package org.gotson.komga.infrastructure.jooq.main import org.gotson.komga.domain.model.AuthenticationActivity import org.gotson.komga.domain.model.KomgaUser import org.gotson.komga.domain.persistence.AuthenticationActivityRepository +import org.gotson.komga.infrastructure.jooq.SplitDslDaoBase import org.gotson.komga.infrastructure.jooq.toOrderBy import org.gotson.komga.jooq.main.Tables import org.gotson.komga.jooq.main.tables.records.AuthenticationActivityRecord @@ -21,9 +22,10 @@ import java.time.LocalDateTime @Component class AuthenticationActivityDao( - private val dslRW: DSLContext, - @Qualifier("dslContextRO") private val dslRO: DSLContext, -) : AuthenticationActivityRepository { + dslRW: DSLContext, + @Qualifier("dslContextRO") dslRO: DSLContext, +) : SplitDslDaoBase(dslRW, dslRO), + AuthenticationActivityRepository { private val aa = Tables.AUTHENTICATION_ACTIVITY private val sorts = diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/BookCommonDao.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/BookCommonDao.kt index 1f0ab1120..b5ad1149d 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/BookCommonDao.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/BookCommonDao.kt @@ -1,6 +1,7 @@ package org.gotson.komga.infrastructure.jooq.main import org.gotson.komga.domain.model.ContentRestrictions +import org.gotson.komga.infrastructure.jooq.SplitDslDaoBase import org.gotson.komga.infrastructure.jooq.toCondition import org.gotson.komga.jooq.main.Tables import org.jooq.DSLContext @@ -19,8 +20,9 @@ import java.time.LocalDateTime @Component class BookCommonDao( - @Qualifier("dslContextRO") private val dslRO: DSLContext, -) { + dslRW: DSLContext, + @Qualifier("dslContextRO") dslRO: DSLContext, +) : SplitDslDaoBase(dslRW, dslRO) { private val b = Tables.BOOK private val m = Tables.MEDIA private val d = Tables.BOOK_METADATA diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/BookDao.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/BookDao.kt index 26aaa00eb..73a6fa533 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/BookDao.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/BookDao.kt @@ -6,6 +6,7 @@ import org.gotson.komga.domain.model.SearchContext import org.gotson.komga.domain.persistence.BookRepository import org.gotson.komga.infrastructure.jooq.BookSearchHelper import org.gotson.komga.infrastructure.jooq.RequiredJoin +import org.gotson.komga.infrastructure.jooq.SplitDslDaoBase import org.gotson.komga.infrastructure.jooq.TempTable.Companion.withTempTable import org.gotson.komga.infrastructure.jooq.rlbAlias import org.gotson.komga.infrastructure.jooq.toOrderBy @@ -30,10 +31,11 @@ import java.time.ZoneId @Component class BookDao( - private val dslRW: DSLContext, - @Qualifier("dslContextRO") private val dslRO: DSLContext, + dslRW: DSLContext, + @Qualifier("dslContextRO") dslRO: DSLContext, @param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int, -) : BookRepository { +) : SplitDslDaoBase(dslRW, dslRO), + BookRepository { private val b = Tables.BOOK private val m = Tables.MEDIA private val d = Tables.BOOK_METADATA diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/BookDtoDao.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/BookDtoDao.kt index ab2d3e159..7231899da 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/BookDtoDao.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/BookDtoDao.kt @@ -7,6 +7,7 @@ import org.gotson.komga.domain.model.SearchContext import org.gotson.komga.infrastructure.datasource.SqliteUdfDataSource import org.gotson.komga.infrastructure.jooq.BookSearchHelper import org.gotson.komga.infrastructure.jooq.RequiredJoin +import org.gotson.komga.infrastructure.jooq.SplitDslDaoBase import org.gotson.komga.infrastructure.jooq.TempTable import org.gotson.komga.infrastructure.jooq.TempTable.Companion.withTempTable import org.gotson.komga.infrastructure.jooq.noCase @@ -51,11 +52,13 @@ import java.net.URL @Component class BookDtoDao( - @Qualifier("dslContextRO") private val dslRO: DSLContext, + dslRW: DSLContext, + @Qualifier("dslContextRO") dslRO: DSLContext, private val luceneHelper: LuceneHelper, @param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int, private val bookCommonDao: BookCommonDao, -) : BookDtoRepository { +) : SplitDslDaoBase(dslRW, dslRO), + BookDtoRepository { private val b = Tables.BOOK private val m = Tables.MEDIA private val d = Tables.BOOK_METADATA diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/BookMetadataAggregationDao.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/BookMetadataAggregationDao.kt index 353a8194f..d0167e00e 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/BookMetadataAggregationDao.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/BookMetadataAggregationDao.kt @@ -3,6 +3,7 @@ package org.gotson.komga.infrastructure.jooq.main import org.gotson.komga.domain.model.Author import org.gotson.komga.domain.model.BookMetadataAggregation import org.gotson.komga.domain.persistence.BookMetadataAggregationRepository +import org.gotson.komga.infrastructure.jooq.SplitDslDaoBase import org.gotson.komga.infrastructure.jooq.TempTable.Companion.withTempTable import org.gotson.komga.jooq.main.Tables import org.gotson.komga.jooq.main.tables.records.BookMetadataAggregationAuthorRecord @@ -18,10 +19,11 @@ import java.time.ZoneId @Component class BookMetadataAggregationDao( - private val dslRW: DSLContext, - @Qualifier("dslContextRO") private val dslRO: DSLContext, + dslRW: DSLContext, + @Qualifier("dslContextRO") dslRO: DSLContext, @param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int, -) : BookMetadataAggregationRepository { +) : SplitDslDaoBase(dslRW, dslRO), + BookMetadataAggregationRepository { private val d = Tables.BOOK_METADATA_AGGREGATION private val a = Tables.BOOK_METADATA_AGGREGATION_AUTHOR private val t = Tables.BOOK_METADATA_AGGREGATION_TAG diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/BookMetadataDao.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/BookMetadataDao.kt index 94de6f249..bbbcf299b 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/BookMetadataDao.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/BookMetadataDao.kt @@ -4,6 +4,7 @@ import org.gotson.komga.domain.model.Author import org.gotson.komga.domain.model.BookMetadata import org.gotson.komga.domain.model.WebLink import org.gotson.komga.domain.persistence.BookMetadataRepository +import org.gotson.komga.infrastructure.jooq.SplitDslDaoBase import org.gotson.komga.infrastructure.jooq.TempTable.Companion.withTempTable import org.gotson.komga.jooq.main.Tables import org.gotson.komga.jooq.main.tables.records.BookMetadataAuthorRecord @@ -20,10 +21,11 @@ import java.time.ZoneId @Component class BookMetadataDao( - private val dslRW: DSLContext, - @Qualifier("dslContextRO") private val dslRO: DSLContext, + dslRW: DSLContext, + @Qualifier("dslContextRO") dslRO: DSLContext, @param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int, -) : BookMetadataRepository { +) : SplitDslDaoBase(dslRW, dslRO), + BookMetadataRepository { private val d = Tables.BOOK_METADATA private val a = Tables.BOOK_METADATA_AUTHOR private val bt = Tables.BOOK_METADATA_TAG diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ClientSettingsDtoDao.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ClientSettingsDtoDao.kt index 4ff030c8a..92035a5af 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ClientSettingsDtoDao.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ClientSettingsDtoDao.kt @@ -1,5 +1,6 @@ package org.gotson.komga.infrastructure.jooq.main +import org.gotson.komga.infrastructure.jooq.SplitDslDaoBase import org.gotson.komga.interfaces.api.rest.dto.ClientSettingDto import org.gotson.komga.jooq.main.Tables import org.jooq.DSLContext @@ -8,9 +9,9 @@ import org.springframework.stereotype.Component @Component class ClientSettingsDtoDao( - private val dslRW: DSLContext, - @Qualifier("dslContextRO") private val dslRO: DSLContext, -) { + dslRW: DSLContext, + @Qualifier("dslContextRO") dslRO: DSLContext, +) : SplitDslDaoBase(dslRW, dslRO) { private val g = Tables.CLIENT_SETTINGS_GLOBAL private val u = Tables.CLIENT_SETTINGS_USER diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/HistoricalEventDtoDao.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/HistoricalEventDtoDao.kt index b70a3d89c..494f2480f 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/HistoricalEventDtoDao.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/HistoricalEventDtoDao.kt @@ -1,5 +1,6 @@ package org.gotson.komga.infrastructure.jooq.main +import org.gotson.komga.infrastructure.jooq.SplitDslDaoBase import org.gotson.komga.infrastructure.jooq.toOrderBy import org.gotson.komga.interfaces.api.persistence.HistoricalEventDtoRepository import org.gotson.komga.interfaces.api.rest.dto.HistoricalEventDto @@ -15,8 +16,10 @@ import org.springframework.stereotype.Component @Component class HistoricalEventDtoDao( - @Qualifier("dslContextRO") private val dslRO: DSLContext, -) : HistoricalEventDtoRepository { + dslRW: DSLContext, + @Qualifier("dslContextRO") dslRO: DSLContext, +) : SplitDslDaoBase(dslRW, dslRO), + HistoricalEventDtoRepository { private val e = Tables.HISTORICAL_EVENT private val ep = Tables.HISTORICAL_EVENT_PROPERTIES diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/KoboDtoDao.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/KoboDtoDao.kt index 9d6e2f944..a72184640 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/KoboDtoDao.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/KoboDtoDao.kt @@ -2,6 +2,7 @@ package org.gotson.komga.infrastructure.jooq.main import com.fasterxml.jackson.databind.ObjectMapper import org.gotson.komga.domain.model.MediaExtensionEpub +import org.gotson.komga.infrastructure.jooq.SplitDslDaoBase import org.gotson.komga.infrastructure.jooq.deserializeMediaExtension import org.gotson.komga.interfaces.api.kobo.dto.ContributorDto import org.gotson.komga.interfaces.api.kobo.dto.KoboBookMetadataDto @@ -16,9 +17,11 @@ import java.time.ZoneId @Component class KoboDtoDao( - @Qualifier("dslContextRO") private val dslRO: DSLContext, + dslRW: DSLContext, + @Qualifier("dslContextRO") dslRO: DSLContext, private val mapper: ObjectMapper, -) : KoboDtoRepository { +) : SplitDslDaoBase(dslRW, dslRO), + KoboDtoRepository { private val b = Tables.BOOK private val m = Tables.MEDIA private val d = Tables.BOOK_METADATA diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/KomgaUserDao.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/KomgaUserDao.kt index 49dc7810d..3d882da99 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/KomgaUserDao.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/KomgaUserDao.kt @@ -7,6 +7,7 @@ import org.gotson.komga.domain.model.ContentRestrictions import org.gotson.komga.domain.model.KomgaUser import org.gotson.komga.domain.model.UserRoles import org.gotson.komga.domain.persistence.KomgaUserRepository +import org.gotson.komga.infrastructure.jooq.SplitDslDaoBase import org.gotson.komga.jooq.main.Tables import org.gotson.komga.jooq.main.tables.records.UserApiKeyRecord import org.gotson.komga.language.toCurrentTimeZone @@ -21,9 +22,10 @@ import java.time.ZoneId @Component class KomgaUserDao( - private val dslRW: DSLContext, - @Qualifier("dslContextRO") private val dslRO: DSLContext, -) : KomgaUserRepository { + dslRW: DSLContext, + @Qualifier("dslContextRO") dslRO: DSLContext, +) : SplitDslDaoBase(dslRW, dslRO), + KomgaUserRepository { private val u = Tables.USER private val ur = Tables.USER_ROLE private val ul = Tables.USER_LIBRARY_SHARING diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/LibraryDao.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/LibraryDao.kt index 3abaa8048..90dfc4d0c 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/LibraryDao.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/LibraryDao.kt @@ -2,6 +2,7 @@ package org.gotson.komga.infrastructure.jooq.main import org.gotson.komga.domain.model.Library import org.gotson.komga.domain.persistence.LibraryRepository +import org.gotson.komga.infrastructure.jooq.SplitDslDaoBase import org.gotson.komga.jooq.main.Tables import org.gotson.komga.jooq.main.tables.records.LibraryRecord import org.gotson.komga.language.toCurrentTimeZone @@ -17,9 +18,10 @@ import java.time.ZoneId @Component class LibraryDao( - private val dslRW: DSLContext, - @Qualifier("dslContextRO") private val dslRO: DSLContext, -) : LibraryRepository { + dslRW: DSLContext, + @Qualifier("dslContextRO") dslRO: DSLContext, +) : SplitDslDaoBase(dslRW, dslRO), + LibraryRepository { private val l = Tables.LIBRARY private val ul = Tables.USER_LIBRARY_SHARING private val le = Tables.LIBRARY_EXCLUSIONS diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/MediaDao.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/MediaDao.kt index e4a0cc123..69339dad3 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/MediaDao.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/MediaDao.kt @@ -8,6 +8,7 @@ import org.gotson.komga.domain.model.MediaExtension import org.gotson.komga.domain.model.MediaFile import org.gotson.komga.domain.model.ProxyExtension import org.gotson.komga.domain.persistence.MediaRepository +import org.gotson.komga.infrastructure.jooq.SplitDslDaoBase import org.gotson.komga.infrastructure.jooq.TempTable.Companion.withTempTable import org.gotson.komga.infrastructure.jooq.deserializeMediaExtension import org.gotson.komga.infrastructure.jooq.serializeJsonGz @@ -27,11 +28,12 @@ import java.time.ZoneId @Component class MediaDao( - private val dslRW: DSLContext, - @Qualifier("dslContextRO") private val dslRO: DSLContext, + dslRW: DSLContext, + @Qualifier("dslContextRO") dslRO: DSLContext, @param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int, private val mapper: ObjectMapper, -) : MediaRepository { +) : SplitDslDaoBase(dslRW, dslRO), + MediaRepository { private val m = Tables.MEDIA private val p = Tables.MEDIA_PAGE private val f = Tables.MEDIA_FILE diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/PageHashDao.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/PageHashDao.kt index cac605ad7..d8877326a 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/PageHashDao.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/PageHashDao.kt @@ -5,6 +5,7 @@ import org.gotson.komga.domain.model.PageHashKnown import org.gotson.komga.domain.model.PageHashMatch import org.gotson.komga.domain.model.PageHashUnknown import org.gotson.komga.domain.persistence.PageHashRepository +import org.gotson.komga.infrastructure.jooq.SplitDslDaoBase import org.gotson.komga.infrastructure.jooq.toOrderBy import org.gotson.komga.jooq.main.Tables import org.gotson.komga.jooq.main.tables.records.PageHashRecord @@ -25,9 +26,10 @@ import java.time.ZoneId @Component class PageHashDao( - private val dslRW: DSLContext, - @Qualifier("dslContextRO") private val dslRO: DSLContext, -) : PageHashRepository { + dslRW: DSLContext, + @Qualifier("dslContextRO") dslRO: DSLContext, +) : SplitDslDaoBase(dslRW, dslRO), + PageHashRepository { private val p = Tables.MEDIA_PAGE private val b = Tables.BOOK private val ph = Tables.PAGE_HASH diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ReadListDao.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ReadListDao.kt index 1c3b0003b..b869509b8 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ReadListDao.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ReadListDao.kt @@ -4,6 +4,7 @@ import org.gotson.komga.domain.model.ContentRestrictions import org.gotson.komga.domain.model.ReadList import org.gotson.komga.domain.persistence.ReadListRepository import org.gotson.komga.infrastructure.datasource.SqliteUdfDataSource +import org.gotson.komga.infrastructure.jooq.SplitDslDaoBase import org.gotson.komga.infrastructure.jooq.TempTable.Companion.withTempTable import org.gotson.komga.infrastructure.jooq.inOrNoCondition import org.gotson.komga.infrastructure.jooq.sortByValues @@ -32,11 +33,12 @@ import java.util.SortedMap @Component class ReadListDao( - private val dslRW: DSLContext, - @Qualifier("dslContextRO") private val dslRO: DSLContext, + dslRW: DSLContext, + @Qualifier("dslContextRO") dslRO: DSLContext, private val luceneHelper: LuceneHelper, @param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int, -) : ReadListRepository { +) : SplitDslDaoBase(dslRW, dslRO), + ReadListRepository { private val rl = Tables.READLIST private val rlb = Tables.READLIST_BOOK private val b = Tables.BOOK diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ReadListRequestDao.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ReadListRequestDao.kt index f73eaf79c..3395ae1f4 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ReadListRequestDao.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ReadListRequestDao.kt @@ -5,6 +5,7 @@ import org.gotson.komga.domain.model.ReadListRequestBookMatchBook import org.gotson.komga.domain.model.ReadListRequestBookMatchSeries import org.gotson.komga.domain.model.ReadListRequestBookMatches import org.gotson.komga.domain.persistence.ReadListRequestRepository +import org.gotson.komga.infrastructure.jooq.SplitDslDaoBase import org.gotson.komga.infrastructure.jooq.noCase import org.gotson.komga.jooq.main.Tables import org.jooq.DSLContext @@ -18,8 +19,10 @@ import java.time.LocalDate @Component class ReadListRequestDao( - @Qualifier("dslContextRO") private val dslRO: DSLContext, -) : ReadListRequestRepository { + dslRW: DSLContext, + @Qualifier("dslContextRO") dslRO: DSLContext, +) : SplitDslDaoBase(dslRW, dslRO), + ReadListRequestRepository { private val sd = Tables.SERIES_METADATA private val b = Tables.BOOK private val bd = Tables.BOOK_METADATA diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ReadProgressDao.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ReadProgressDao.kt index a5acc84af..bf1014d51 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ReadProgressDao.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ReadProgressDao.kt @@ -4,6 +4,7 @@ import com.fasterxml.jackson.databind.ObjectMapper import org.gotson.komga.domain.model.R2Locator import org.gotson.komga.domain.model.ReadProgress import org.gotson.komga.domain.persistence.ReadProgressRepository +import org.gotson.komga.infrastructure.jooq.SplitDslDaoBase import org.gotson.komga.infrastructure.jooq.TempTable import org.gotson.komga.infrastructure.jooq.TempTable.Companion.withTempTable import org.gotson.komga.infrastructure.jooq.deserializeJsonGz @@ -24,11 +25,12 @@ import java.time.ZoneId @Component class ReadProgressDao( - private val dslRW: DSLContext, - @Qualifier("dslContextRO") private val dslRO: DSLContext, + dslRW: DSLContext, + @Qualifier("dslContextRO") dslRO: DSLContext, @param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int, private val mapper: ObjectMapper, -) : ReadProgressRepository { +) : SplitDslDaoBase(dslRW, dslRO), + ReadProgressRepository { private val r = Tables.READ_PROGRESS private val rs = Tables.READ_PROGRESS_SERIES private val b = Tables.BOOK diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ReadProgressDtoDao.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ReadProgressDtoDao.kt index d595d9ae6..cd79b8b61 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ReadProgressDtoDao.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ReadProgressDtoDao.kt @@ -1,5 +1,6 @@ package org.gotson.komga.infrastructure.jooq.main +import org.gotson.komga.infrastructure.jooq.SplitDslDaoBase import org.gotson.komga.interfaces.api.persistence.ReadProgressDtoRepository import org.gotson.komga.interfaces.api.rest.dto.TachiyomiReadProgressDto import org.gotson.komga.interfaces.api.rest.dto.TachiyomiReadProgressV2Dto @@ -16,8 +17,10 @@ import java.math.BigDecimal @Component class ReadProgressDtoDao( - @Qualifier("dslContextRO") private val dslRO: DSLContext, -) : ReadProgressDtoRepository { + dslRW: DSLContext, + @Qualifier("dslContextRO") dslRO: DSLContext, +) : SplitDslDaoBase(dslRW, dslRO), + ReadProgressDtoRepository { private val rlb = Tables.READLIST_BOOK private val b = Tables.BOOK private val d = Tables.BOOK_METADATA diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ReferentialDao.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ReferentialDao.kt index c86d5f3a6..35ad984b7 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ReferentialDao.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ReferentialDao.kt @@ -3,6 +3,7 @@ package org.gotson.komga.infrastructure.jooq.main import org.gotson.komga.domain.model.Author import org.gotson.komga.domain.persistence.ReferentialRepository import org.gotson.komga.infrastructure.datasource.SqliteUdfDataSource +import org.gotson.komga.infrastructure.jooq.SplitDslDaoBase import org.gotson.komga.infrastructure.jooq.udfStripAccents import org.gotson.komga.jooq.main.Tables import org.gotson.komga.jooq.main.tables.records.BookMetadataAggregationAuthorRecord @@ -22,8 +23,10 @@ import java.time.LocalDate @Component class ReferentialDao( - @Qualifier("dslContextRO") private val dslRO: DSLContext, -) : ReferentialRepository { + dslRW: DSLContext, + @Qualifier("dslContextRO") dslRO: DSLContext, +) : SplitDslDaoBase(dslRW, dslRO), + ReferentialRepository { private val a = Tables.BOOK_METADATA_AUTHOR private val sd = Tables.SERIES_METADATA private val bma = Tables.BOOK_METADATA_AGGREGATION diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/SeriesCollectionDao.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/SeriesCollectionDao.kt index d38633ffd..c89a125ba 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/SeriesCollectionDao.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/SeriesCollectionDao.kt @@ -4,6 +4,7 @@ import org.gotson.komga.domain.model.ContentRestrictions import org.gotson.komga.domain.model.SeriesCollection import org.gotson.komga.domain.persistence.SeriesCollectionRepository import org.gotson.komga.infrastructure.datasource.SqliteUdfDataSource +import org.gotson.komga.infrastructure.jooq.SplitDslDaoBase import org.gotson.komga.infrastructure.jooq.TempTable.Companion.withTempTable import org.gotson.komga.infrastructure.jooq.inOrNoCondition import org.gotson.komga.infrastructure.jooq.sortByValues @@ -31,11 +32,12 @@ import java.time.ZoneId @Component class SeriesCollectionDao( - private val dslRW: DSLContext, - @Qualifier("dslContextRO") private val dslRO: DSLContext, + dslRW: DSLContext, + @Qualifier("dslContextRO") dslRO: DSLContext, private val luceneHelper: LuceneHelper, @param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int, -) : SeriesCollectionRepository { +) : SplitDslDaoBase(dslRW, dslRO), + SeriesCollectionRepository { private val c = Tables.COLLECTION private val cs = Tables.COLLECTION_SERIES private val s = Tables.SERIES diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/SeriesDao.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/SeriesDao.kt index f8e1c7b3e..07097304d 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/SeriesDao.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/SeriesDao.kt @@ -6,6 +6,7 @@ import org.gotson.komga.domain.model.Series import org.gotson.komga.domain.persistence.SeriesRepository import org.gotson.komga.infrastructure.jooq.RequiredJoin import org.gotson.komga.infrastructure.jooq.SeriesSearchHelper +import org.gotson.komga.infrastructure.jooq.SplitDslDaoBase import org.gotson.komga.infrastructure.jooq.TempTable.Companion.withTempTable import org.gotson.komga.infrastructure.jooq.csAlias import org.gotson.komga.jooq.main.Tables @@ -28,10 +29,11 @@ import java.time.ZoneId @Component class SeriesDao( - private val dslRW: DSLContext, - @Qualifier("dslContextRO") private val dslRO: DSLContext, + dslRW: DSLContext, + @Qualifier("dslContextRO") dslRO: DSLContext, @param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int, -) : SeriesRepository { +) : SplitDslDaoBase(dslRW, dslRO), + SeriesRepository { private val s = Tables.SERIES private val d = Tables.SERIES_METADATA private val rs = Tables.READ_PROGRESS_SERIES diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/SeriesDtoDao.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/SeriesDtoDao.kt index defe09935..7157afaad 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/SeriesDtoDao.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/SeriesDtoDao.kt @@ -6,6 +6,7 @@ import org.gotson.komga.domain.model.SeriesSearch import org.gotson.komga.infrastructure.datasource.SqliteUdfDataSource import org.gotson.komga.infrastructure.jooq.RequiredJoin import org.gotson.komga.infrastructure.jooq.SeriesSearchHelper +import org.gotson.komga.infrastructure.jooq.SplitDslDaoBase import org.gotson.komga.infrastructure.jooq.TempTable.Companion.withTempTable import org.gotson.komga.infrastructure.jooq.csAlias import org.gotson.komga.infrastructure.jooq.inOrNoCondition @@ -52,10 +53,12 @@ const val BOOKS_READ_COUNT = "booksReadCount" @Component class SeriesDtoDao( - @Qualifier("dslContextRO") private val dslRO: DSLContext, + dslRW: DSLContext, + @Qualifier("dslContextRO") dslRO: DSLContext, private val luceneHelper: LuceneHelper, @param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int, -) : SeriesDtoRepository { +) : SplitDslDaoBase(dslRW, dslRO), + SeriesDtoRepository { private val s = Tables.SERIES private val d = Tables.SERIES_METADATA private val rs = Tables.READ_PROGRESS_SERIES diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/SeriesMetadataDao.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/SeriesMetadataDao.kt index 9ba214eec..e0c041a0d 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/SeriesMetadataDao.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/SeriesMetadataDao.kt @@ -4,6 +4,7 @@ import org.gotson.komga.domain.model.AlternateTitle import org.gotson.komga.domain.model.SeriesMetadata import org.gotson.komga.domain.model.WebLink import org.gotson.komga.domain.persistence.SeriesMetadataRepository +import org.gotson.komga.infrastructure.jooq.SplitDslDaoBase import org.gotson.komga.infrastructure.jooq.TempTable.Companion.withTempTable import org.gotson.komga.jooq.main.Tables import org.gotson.komga.jooq.main.tables.records.SeriesMetadataRecord @@ -19,10 +20,11 @@ import java.time.ZoneId @Component class SeriesMetadataDao( - private val dslRW: DSLContext, - @Qualifier("dslContextRO") private val dslRO: DSLContext, + dslRW: DSLContext, + @Qualifier("dslContextRO") dslRO: DSLContext, @param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int, -) : SeriesMetadataRepository { +) : SplitDslDaoBase(dslRW, dslRO), + SeriesMetadataRepository { private val d = Tables.SERIES_METADATA private val g = Tables.SERIES_METADATA_GENRE private val st = Tables.SERIES_METADATA_TAG diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ServerSettingsDao.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ServerSettingsDao.kt index a5fe965fd..b9a347882 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ServerSettingsDao.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ServerSettingsDao.kt @@ -1,5 +1,6 @@ package org.gotson.komga.infrastructure.jooq.main +import org.gotson.komga.infrastructure.jooq.SplitDslDaoBase import org.gotson.komga.jooq.main.Tables import org.jooq.DSLContext import org.springframework.beans.factory.annotation.Qualifier @@ -7,9 +8,9 @@ import org.springframework.stereotype.Component @Component class ServerSettingsDao( - private val dslRW: DSLContext, - @Qualifier("dslContextRO") private val dslRO: DSLContext, -) { + dslRW: DSLContext, + @Qualifier("dslContextRO") dslRO: DSLContext, +) : SplitDslDaoBase(dslRW, dslRO) { private val s = Tables.SERVER_SETTINGS fun getSettingByKey( diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/SidecarDao.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/SidecarDao.kt index 495c4e74b..61bafcb52 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/SidecarDao.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/SidecarDao.kt @@ -3,6 +3,7 @@ package org.gotson.komga.infrastructure.jooq.main import org.gotson.komga.domain.model.Sidecar import org.gotson.komga.domain.model.SidecarStored import org.gotson.komga.domain.persistence.SidecarRepository +import org.gotson.komga.infrastructure.jooq.SplitDslDaoBase import org.gotson.komga.infrastructure.jooq.TempTable.Companion.withTempTable import org.gotson.komga.jooq.main.Tables import org.gotson.komga.jooq.main.tables.records.SidecarRecord @@ -16,10 +17,11 @@ import java.net.URL @Component class SidecarDao( - private val dslRW: DSLContext, - @Qualifier("dslContextRO") private val dslRO: DSLContext, + dslRW: DSLContext, + @Qualifier("dslContextRO") dslRO: DSLContext, @param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int, -) : SidecarRepository { +) : SplitDslDaoBase(dslRW, dslRO), + SidecarRepository { private val sc = Tables.SIDECAR override fun findAll(): Collection = dslRO.selectFrom(sc).fetch().map { it.toDomain() } diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/SyncPointDao.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/SyncPointDao.kt index b5f1451ea..cc8f91ab9 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/SyncPointDao.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/SyncPointDao.kt @@ -8,6 +8,7 @@ import org.gotson.komga.domain.model.SyncPoint.ReadList.Companion.ON_DECK_ID import org.gotson.komga.domain.persistence.SyncPointRepository import org.gotson.komga.infrastructure.jooq.BookSearchHelper import org.gotson.komga.infrastructure.jooq.RequiredJoin +import org.gotson.komga.infrastructure.jooq.SplitDslDaoBase import org.gotson.komga.jooq.main.Tables import org.gotson.komga.language.toZonedDateTime import org.jooq.DSLContext @@ -28,10 +29,11 @@ import java.time.ZoneId @Component class SyncPointDao( - private val dslRW: DSLContext, - @Qualifier("dslContextRO") private val dslRO: DSLContext, + dslRW: DSLContext, + @Qualifier("dslContextRO") dslRO: DSLContext, private val bookCommonDao: BookCommonDao, -) : SyncPointRepository { +) : SplitDslDaoBase(dslRW, dslRO), + SyncPointRepository { private val b = Tables.BOOK private val m = Tables.MEDIA private val d = Tables.BOOK_METADATA @@ -128,7 +130,7 @@ class SyncPointDao( .where(condition), ).execute() - return dslRW.findByIdOrNull(syncPointId)!! + return findByIdOrNull(syncPointId)!! } @Transactional @@ -172,10 +174,9 @@ class SyncPointDao( } } - override fun findByIdOrNull(syncPointId: String): SyncPoint? = dslRO.findByIdOrNull(syncPointId) - - private fun DSLContext.findByIdOrNull(syncPointId: String): SyncPoint? = - selectFrom(sp) + override fun findByIdOrNull(syncPointId: String): SyncPoint? = + dslRO + .selectFrom(sp) .where(sp.ID.eq(syncPointId)) .fetchInto(sp) .map { diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ThumbnailBookDao.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ThumbnailBookDao.kt index 5be7ac358..f3c0a90bb 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ThumbnailBookDao.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ThumbnailBookDao.kt @@ -3,6 +3,7 @@ package org.gotson.komga.infrastructure.jooq.main import org.gotson.komga.domain.model.Dimension import org.gotson.komga.domain.model.ThumbnailBook import org.gotson.komga.domain.persistence.ThumbnailBookRepository +import org.gotson.komga.infrastructure.jooq.SplitDslDaoBase import org.gotson.komga.infrastructure.jooq.TempTable.Companion.withTempTable import org.gotson.komga.jooq.main.Tables import org.gotson.komga.jooq.main.tables.records.ThumbnailBookRecord @@ -15,10 +16,11 @@ import java.net.URL @Component class ThumbnailBookDao( - private val dslRW: DSLContext, - @Qualifier("dslContextRO") private val dslRO: DSLContext, + dslRW: DSLContext, + @Qualifier("dslContextRO") dslRO: DSLContext, @param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int, -) : ThumbnailBookRepository { +) : SplitDslDaoBase(dslRW, dslRO), + ThumbnailBookRepository { private val tb = Tables.THUMBNAIL_BOOK override fun findAllByBookId(bookId: String): Collection = diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ThumbnailReadListDao.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ThumbnailReadListDao.kt index dfa6f63f0..713ee0b8c 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ThumbnailReadListDao.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ThumbnailReadListDao.kt @@ -3,6 +3,7 @@ package org.gotson.komga.infrastructure.jooq.main import org.gotson.komga.domain.model.Dimension import org.gotson.komga.domain.model.ThumbnailReadList import org.gotson.komga.domain.persistence.ThumbnailReadListRepository +import org.gotson.komga.infrastructure.jooq.SplitDslDaoBase import org.gotson.komga.jooq.main.Tables import org.gotson.komga.jooq.main.tables.records.ThumbnailReadlistRecord import org.jooq.DSLContext @@ -12,9 +13,10 @@ import org.springframework.transaction.annotation.Transactional @Component class ThumbnailReadListDao( - private val dslRW: DSLContext, - @Qualifier("dslContextRO") private val dslRO: DSLContext, -) : ThumbnailReadListRepository { + dslRW: DSLContext, + @Qualifier("dslContextRO") dslRO: DSLContext, +) : SplitDslDaoBase(dslRW, dslRO), + ThumbnailReadListRepository { private val tr = Tables.THUMBNAIL_READLIST override fun findAllByReadListId(readListId: String): Collection = diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ThumbnailSeriesCollectionDao.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ThumbnailSeriesCollectionDao.kt index 4218db5e0..bba0361c2 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ThumbnailSeriesCollectionDao.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ThumbnailSeriesCollectionDao.kt @@ -3,6 +3,7 @@ package org.gotson.komga.infrastructure.jooq.main import org.gotson.komga.domain.model.Dimension import org.gotson.komga.domain.model.ThumbnailSeriesCollection import org.gotson.komga.domain.persistence.ThumbnailSeriesCollectionRepository +import org.gotson.komga.infrastructure.jooq.SplitDslDaoBase import org.gotson.komga.jooq.main.Tables import org.gotson.komga.jooq.main.tables.records.ThumbnailCollectionRecord import org.jooq.DSLContext @@ -12,9 +13,10 @@ import org.springframework.transaction.annotation.Transactional @Component class ThumbnailSeriesCollectionDao( - private val dslRW: DSLContext, - @Qualifier("dslContextRO") private val dslRO: DSLContext, -) : ThumbnailSeriesCollectionRepository { + dslRW: DSLContext, + @Qualifier("dslContextRO") dslRO: DSLContext, +) : SplitDslDaoBase(dslRW, dslRO), + ThumbnailSeriesCollectionRepository { private val tc = Tables.THUMBNAIL_COLLECTION override fun findByIdOrNull(thumbnailId: String): ThumbnailSeriesCollection? = diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ThumbnailSeriesDao.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ThumbnailSeriesDao.kt index a125d8d1d..e7bf3ed9f 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ThumbnailSeriesDao.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ThumbnailSeriesDao.kt @@ -3,6 +3,7 @@ package org.gotson.komga.infrastructure.jooq.main import org.gotson.komga.domain.model.Dimension import org.gotson.komga.domain.model.ThumbnailSeries import org.gotson.komga.domain.persistence.ThumbnailSeriesRepository +import org.gotson.komga.infrastructure.jooq.SplitDslDaoBase import org.gotson.komga.infrastructure.jooq.TempTable.Companion.withTempTable import org.gotson.komga.jooq.main.Tables import org.gotson.komga.jooq.main.tables.records.ThumbnailSeriesRecord @@ -15,10 +16,11 @@ import java.net.URL @Component class ThumbnailSeriesDao( - private val dslRW: DSLContext, - @Qualifier("dslContextRO") private val dslRO: DSLContext, + dslRW: DSLContext, + @Qualifier("dslContextRO") dslRO: DSLContext, @param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int, -) : ThumbnailSeriesRepository { +) : SplitDslDaoBase(dslRW, dslRO), + ThumbnailSeriesRepository { private val ts = Tables.THUMBNAIL_SERIES override fun findByIdOrNull(thumbnailId: String): ThumbnailSeries? = diff --git a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/tasks/TasksDao.kt b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/tasks/TasksDao.kt index 312034845..2b851ecfa 100644 --- a/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/tasks/TasksDao.kt +++ b/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/tasks/TasksDao.kt @@ -4,6 +4,7 @@ import com.fasterxml.jackson.databind.ObjectMapper import io.github.oshai.kotlinlogging.KotlinLogging import org.gotson.komga.application.tasks.Task import org.gotson.komga.application.tasks.TasksRepository +import org.gotson.komga.infrastructure.jooq.SplitDslDaoBase import org.gotson.komga.jooq.tasks.Tables import org.jooq.DSLContext import org.jooq.Query @@ -22,11 +23,12 @@ private val logger = KotlinLogging.logger {} @Component @DependsOn("flywaySecondaryMigrationInitializer") class TasksDao( - @Qualifier("tasksDslContextRW") private val dslRW: DSLContext, - @Qualifier("tasksDslContextRO") private val dslRO: DSLContext, + @Qualifier("tasksDslContextRW") dslRW: DSLContext, + @Qualifier("tasksDslContextRO") dslRO: DSLContext, @param:Value("#{@komgaProperties.tasksDb.batchChunkSize}") private val batchSize: Int, private val objectMapper: ObjectMapper, -) : TasksRepository { +) : SplitDslDaoBase(dslRW, dslRO), + TasksRepository { private val t = Tables.TASK private val tasksAvailableCondition =