mirror of
https://github.com/gotson/komga.git
synced 2025-12-06 16:42:24 +01:00
refactor: make dslRO transaction aware
This commit is contained in:
parent
e850cdcd2f
commit
69ba569b04
33 changed files with 180 additions and 87 deletions
|
|
@ -13,6 +13,7 @@ import org.gotson.komga.infrastructure.image.MosaicGenerator
|
||||||
import org.gotson.komga.infrastructure.metadata.comicrack.ReadListProvider
|
import org.gotson.komga.infrastructure.metadata.comicrack.ReadListProvider
|
||||||
import org.springframework.context.ApplicationEventPublisher
|
import org.springframework.context.ApplicationEventPublisher
|
||||||
import org.springframework.stereotype.Service
|
import org.springframework.stereotype.Service
|
||||||
|
import org.springframework.transaction.annotation.Transactional
|
||||||
import org.springframework.transaction.support.TransactionTemplate
|
import org.springframework.transaction.support.TransactionTemplate
|
||||||
|
|
||||||
private val logger = KotlinLogging.logger {}
|
private val logger = KotlinLogging.logger {}
|
||||||
|
|
@ -31,6 +32,7 @@ class ReadListLifecycle(
|
||||||
@Throws(
|
@Throws(
|
||||||
DuplicateNameException::class,
|
DuplicateNameException::class,
|
||||||
)
|
)
|
||||||
|
@Transactional
|
||||||
fun addReadList(readList: ReadList): ReadList {
|
fun addReadList(readList: ReadList): ReadList {
|
||||||
logger.info { "Adding new read list: $readList" }
|
logger.info { "Adding new read list: $readList" }
|
||||||
|
|
||||||
|
|
@ -44,6 +46,7 @@ class ReadListLifecycle(
|
||||||
return readListRepository.findByIdOrNull(readList.id)!!
|
return readListRepository.findByIdOrNull(readList.id)!!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
fun updateReadList(toUpdate: ReadList) {
|
fun updateReadList(toUpdate: ReadList) {
|
||||||
logger.info { "Update read list: $toUpdate" }
|
logger.info { "Update read list: $toUpdate" }
|
||||||
val existing =
|
val existing =
|
||||||
|
|
@ -71,6 +74,7 @@ class ReadListLifecycle(
|
||||||
* Add book to read list by name.
|
* Add book to read list by name.
|
||||||
* Read list will be created if it doesn't exist.
|
* Read list will be created if it doesn't exist.
|
||||||
*/
|
*/
|
||||||
|
@Transactional
|
||||||
fun addBookToReadList(
|
fun addBookToReadList(
|
||||||
readListName: String,
|
readListName: String,
|
||||||
book: Book,
|
book: Book,
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@ import org.gotson.komga.domain.persistence.ThumbnailSeriesCollectionRepository
|
||||||
import org.gotson.komga.infrastructure.image.MosaicGenerator
|
import org.gotson.komga.infrastructure.image.MosaicGenerator
|
||||||
import org.springframework.context.ApplicationEventPublisher
|
import org.springframework.context.ApplicationEventPublisher
|
||||||
import org.springframework.stereotype.Service
|
import org.springframework.stereotype.Service
|
||||||
|
import org.springframework.transaction.annotation.Transactional
|
||||||
import org.springframework.transaction.support.TransactionTemplate
|
import org.springframework.transaction.support.TransactionTemplate
|
||||||
|
|
||||||
private val logger = KotlinLogging.logger {}
|
private val logger = KotlinLogging.logger {}
|
||||||
|
|
@ -27,6 +28,7 @@ class SeriesCollectionLifecycle(
|
||||||
@Throws(
|
@Throws(
|
||||||
DuplicateNameException::class,
|
DuplicateNameException::class,
|
||||||
)
|
)
|
||||||
|
@Transactional
|
||||||
fun addCollection(collection: SeriesCollection): SeriesCollection {
|
fun addCollection(collection: SeriesCollection): SeriesCollection {
|
||||||
logger.info { "Adding new collection: $collection" }
|
logger.info { "Adding new collection: $collection" }
|
||||||
|
|
||||||
|
|
@ -40,6 +42,7 @@ class SeriesCollectionLifecycle(
|
||||||
return collectionRepository.findByIdOrNull(collection.id)!!
|
return collectionRepository.findByIdOrNull(collection.id)!!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
fun updateCollection(toUpdate: SeriesCollection) {
|
fun updateCollection(toUpdate: SeriesCollection) {
|
||||||
logger.info { "Update collection: $toUpdate" }
|
logger.info { "Update collection: $toUpdate" }
|
||||||
|
|
||||||
|
|
@ -67,6 +70,7 @@ class SeriesCollectionLifecycle(
|
||||||
* Add series to collection by name.
|
* Add series to collection by name.
|
||||||
* Collection will be created if it doesn't exist.
|
* Collection will be created if it doesn't exist.
|
||||||
*/
|
*/
|
||||||
|
@Transactional
|
||||||
fun addSeriesToCollection(
|
fun addSeriesToCollection(
|
||||||
collectionName: String,
|
collectionName: String,
|
||||||
series: Series,
|
series: Series,
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
}
|
||||||
|
|
@ -3,6 +3,7 @@ package org.gotson.komga.infrastructure.jooq.main
|
||||||
import org.gotson.komga.domain.model.AuthenticationActivity
|
import org.gotson.komga.domain.model.AuthenticationActivity
|
||||||
import org.gotson.komga.domain.model.KomgaUser
|
import org.gotson.komga.domain.model.KomgaUser
|
||||||
import org.gotson.komga.domain.persistence.AuthenticationActivityRepository
|
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.infrastructure.jooq.toOrderBy
|
||||||
import org.gotson.komga.jooq.main.Tables
|
import org.gotson.komga.jooq.main.Tables
|
||||||
import org.gotson.komga.jooq.main.tables.records.AuthenticationActivityRecord
|
import org.gotson.komga.jooq.main.tables.records.AuthenticationActivityRecord
|
||||||
|
|
@ -21,9 +22,10 @@ import java.time.LocalDateTime
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
class AuthenticationActivityDao(
|
class AuthenticationActivityDao(
|
||||||
private val dslRW: DSLContext,
|
dslRW: DSLContext,
|
||||||
@Qualifier("dslContextRO") private val dslRO: DSLContext,
|
@Qualifier("dslContextRO") dslRO: DSLContext,
|
||||||
) : AuthenticationActivityRepository {
|
) : SplitDslDaoBase(dslRW, dslRO),
|
||||||
|
AuthenticationActivityRepository {
|
||||||
private val aa = Tables.AUTHENTICATION_ACTIVITY
|
private val aa = Tables.AUTHENTICATION_ACTIVITY
|
||||||
|
|
||||||
private val sorts =
|
private val sorts =
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package org.gotson.komga.infrastructure.jooq.main
|
package org.gotson.komga.infrastructure.jooq.main
|
||||||
|
|
||||||
import org.gotson.komga.domain.model.ContentRestrictions
|
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.infrastructure.jooq.toCondition
|
||||||
import org.gotson.komga.jooq.main.Tables
|
import org.gotson.komga.jooq.main.Tables
|
||||||
import org.jooq.DSLContext
|
import org.jooq.DSLContext
|
||||||
|
|
@ -19,8 +20,9 @@ import java.time.LocalDateTime
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
class BookCommonDao(
|
class BookCommonDao(
|
||||||
@Qualifier("dslContextRO") private val dslRO: DSLContext,
|
dslRW: DSLContext,
|
||||||
) {
|
@Qualifier("dslContextRO") dslRO: DSLContext,
|
||||||
|
) : SplitDslDaoBase(dslRW, dslRO) {
|
||||||
private val b = Tables.BOOK
|
private val b = Tables.BOOK
|
||||||
private val m = Tables.MEDIA
|
private val m = Tables.MEDIA
|
||||||
private val d = Tables.BOOK_METADATA
|
private val d = Tables.BOOK_METADATA
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import org.gotson.komga.domain.model.SearchContext
|
||||||
import org.gotson.komga.domain.persistence.BookRepository
|
import org.gotson.komga.domain.persistence.BookRepository
|
||||||
import org.gotson.komga.infrastructure.jooq.BookSearchHelper
|
import org.gotson.komga.infrastructure.jooq.BookSearchHelper
|
||||||
import org.gotson.komga.infrastructure.jooq.RequiredJoin
|
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.TempTable.Companion.withTempTable
|
||||||
import org.gotson.komga.infrastructure.jooq.rlbAlias
|
import org.gotson.komga.infrastructure.jooq.rlbAlias
|
||||||
import org.gotson.komga.infrastructure.jooq.toOrderBy
|
import org.gotson.komga.infrastructure.jooq.toOrderBy
|
||||||
|
|
@ -30,10 +31,11 @@ import java.time.ZoneId
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
class BookDao(
|
class BookDao(
|
||||||
private val dslRW: DSLContext,
|
dslRW: DSLContext,
|
||||||
@Qualifier("dslContextRO") private val dslRO: DSLContext,
|
@Qualifier("dslContextRO") dslRO: DSLContext,
|
||||||
@param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int,
|
@param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int,
|
||||||
) : BookRepository {
|
) : SplitDslDaoBase(dslRW, dslRO),
|
||||||
|
BookRepository {
|
||||||
private val b = Tables.BOOK
|
private val b = Tables.BOOK
|
||||||
private val m = Tables.MEDIA
|
private val m = Tables.MEDIA
|
||||||
private val d = Tables.BOOK_METADATA
|
private val d = Tables.BOOK_METADATA
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ import org.gotson.komga.domain.model.SearchContext
|
||||||
import org.gotson.komga.infrastructure.datasource.SqliteUdfDataSource
|
import org.gotson.komga.infrastructure.datasource.SqliteUdfDataSource
|
||||||
import org.gotson.komga.infrastructure.jooq.BookSearchHelper
|
import org.gotson.komga.infrastructure.jooq.BookSearchHelper
|
||||||
import org.gotson.komga.infrastructure.jooq.RequiredJoin
|
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
|
||||||
import org.gotson.komga.infrastructure.jooq.TempTable.Companion.withTempTable
|
import org.gotson.komga.infrastructure.jooq.TempTable.Companion.withTempTable
|
||||||
import org.gotson.komga.infrastructure.jooq.noCase
|
import org.gotson.komga.infrastructure.jooq.noCase
|
||||||
|
|
@ -51,11 +52,13 @@ import java.net.URL
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
class BookDtoDao(
|
class BookDtoDao(
|
||||||
@Qualifier("dslContextRO") private val dslRO: DSLContext,
|
dslRW: DSLContext,
|
||||||
|
@Qualifier("dslContextRO") dslRO: DSLContext,
|
||||||
private val luceneHelper: LuceneHelper,
|
private val luceneHelper: LuceneHelper,
|
||||||
@param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int,
|
@param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int,
|
||||||
private val bookCommonDao: BookCommonDao,
|
private val bookCommonDao: BookCommonDao,
|
||||||
) : BookDtoRepository {
|
) : SplitDslDaoBase(dslRW, dslRO),
|
||||||
|
BookDtoRepository {
|
||||||
private val b = Tables.BOOK
|
private val b = Tables.BOOK
|
||||||
private val m = Tables.MEDIA
|
private val m = Tables.MEDIA
|
||||||
private val d = Tables.BOOK_METADATA
|
private val d = Tables.BOOK_METADATA
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package org.gotson.komga.infrastructure.jooq.main
|
||||||
import org.gotson.komga.domain.model.Author
|
import org.gotson.komga.domain.model.Author
|
||||||
import org.gotson.komga.domain.model.BookMetadataAggregation
|
import org.gotson.komga.domain.model.BookMetadataAggregation
|
||||||
import org.gotson.komga.domain.persistence.BookMetadataAggregationRepository
|
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.infrastructure.jooq.TempTable.Companion.withTempTable
|
||||||
import org.gotson.komga.jooq.main.Tables
|
import org.gotson.komga.jooq.main.Tables
|
||||||
import org.gotson.komga.jooq.main.tables.records.BookMetadataAggregationAuthorRecord
|
import org.gotson.komga.jooq.main.tables.records.BookMetadataAggregationAuthorRecord
|
||||||
|
|
@ -18,10 +19,11 @@ import java.time.ZoneId
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
class BookMetadataAggregationDao(
|
class BookMetadataAggregationDao(
|
||||||
private val dslRW: DSLContext,
|
dslRW: DSLContext,
|
||||||
@Qualifier("dslContextRO") private val dslRO: DSLContext,
|
@Qualifier("dslContextRO") dslRO: DSLContext,
|
||||||
@param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int,
|
@param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int,
|
||||||
) : BookMetadataAggregationRepository {
|
) : SplitDslDaoBase(dslRW, dslRO),
|
||||||
|
BookMetadataAggregationRepository {
|
||||||
private val d = Tables.BOOK_METADATA_AGGREGATION
|
private val d = Tables.BOOK_METADATA_AGGREGATION
|
||||||
private val a = Tables.BOOK_METADATA_AGGREGATION_AUTHOR
|
private val a = Tables.BOOK_METADATA_AGGREGATION_AUTHOR
|
||||||
private val t = Tables.BOOK_METADATA_AGGREGATION_TAG
|
private val t = Tables.BOOK_METADATA_AGGREGATION_TAG
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import org.gotson.komga.domain.model.Author
|
||||||
import org.gotson.komga.domain.model.BookMetadata
|
import org.gotson.komga.domain.model.BookMetadata
|
||||||
import org.gotson.komga.domain.model.WebLink
|
import org.gotson.komga.domain.model.WebLink
|
||||||
import org.gotson.komga.domain.persistence.BookMetadataRepository
|
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.infrastructure.jooq.TempTable.Companion.withTempTable
|
||||||
import org.gotson.komga.jooq.main.Tables
|
import org.gotson.komga.jooq.main.Tables
|
||||||
import org.gotson.komga.jooq.main.tables.records.BookMetadataAuthorRecord
|
import org.gotson.komga.jooq.main.tables.records.BookMetadataAuthorRecord
|
||||||
|
|
@ -20,10 +21,11 @@ import java.time.ZoneId
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
class BookMetadataDao(
|
class BookMetadataDao(
|
||||||
private val dslRW: DSLContext,
|
dslRW: DSLContext,
|
||||||
@Qualifier("dslContextRO") private val dslRO: DSLContext,
|
@Qualifier("dslContextRO") dslRO: DSLContext,
|
||||||
@param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int,
|
@param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int,
|
||||||
) : BookMetadataRepository {
|
) : SplitDslDaoBase(dslRW, dslRO),
|
||||||
|
BookMetadataRepository {
|
||||||
private val d = Tables.BOOK_METADATA
|
private val d = Tables.BOOK_METADATA
|
||||||
private val a = Tables.BOOK_METADATA_AUTHOR
|
private val a = Tables.BOOK_METADATA_AUTHOR
|
||||||
private val bt = Tables.BOOK_METADATA_TAG
|
private val bt = Tables.BOOK_METADATA_TAG
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package org.gotson.komga.infrastructure.jooq.main
|
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.interfaces.api.rest.dto.ClientSettingDto
|
||||||
import org.gotson.komga.jooq.main.Tables
|
import org.gotson.komga.jooq.main.Tables
|
||||||
import org.jooq.DSLContext
|
import org.jooq.DSLContext
|
||||||
|
|
@ -8,9 +9,9 @@ import org.springframework.stereotype.Component
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
class ClientSettingsDtoDao(
|
class ClientSettingsDtoDao(
|
||||||
private val dslRW: DSLContext,
|
dslRW: DSLContext,
|
||||||
@Qualifier("dslContextRO") private val dslRO: DSLContext,
|
@Qualifier("dslContextRO") dslRO: DSLContext,
|
||||||
) {
|
) : SplitDslDaoBase(dslRW, dslRO) {
|
||||||
private val g = Tables.CLIENT_SETTINGS_GLOBAL
|
private val g = Tables.CLIENT_SETTINGS_GLOBAL
|
||||||
private val u = Tables.CLIENT_SETTINGS_USER
|
private val u = Tables.CLIENT_SETTINGS_USER
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package org.gotson.komga.infrastructure.jooq.main
|
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.infrastructure.jooq.toOrderBy
|
||||||
import org.gotson.komga.interfaces.api.persistence.HistoricalEventDtoRepository
|
import org.gotson.komga.interfaces.api.persistence.HistoricalEventDtoRepository
|
||||||
import org.gotson.komga.interfaces.api.rest.dto.HistoricalEventDto
|
import org.gotson.komga.interfaces.api.rest.dto.HistoricalEventDto
|
||||||
|
|
@ -15,8 +16,10 @@ import org.springframework.stereotype.Component
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
class HistoricalEventDtoDao(
|
class HistoricalEventDtoDao(
|
||||||
@Qualifier("dslContextRO") private val dslRO: DSLContext,
|
dslRW: DSLContext,
|
||||||
) : HistoricalEventDtoRepository {
|
@Qualifier("dslContextRO") dslRO: DSLContext,
|
||||||
|
) : SplitDslDaoBase(dslRW, dslRO),
|
||||||
|
HistoricalEventDtoRepository {
|
||||||
private val e = Tables.HISTORICAL_EVENT
|
private val e = Tables.HISTORICAL_EVENT
|
||||||
private val ep = Tables.HISTORICAL_EVENT_PROPERTIES
|
private val ep = Tables.HISTORICAL_EVENT_PROPERTIES
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package org.gotson.komga.infrastructure.jooq.main
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper
|
import com.fasterxml.jackson.databind.ObjectMapper
|
||||||
import org.gotson.komga.domain.model.MediaExtensionEpub
|
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.infrastructure.jooq.deserializeMediaExtension
|
||||||
import org.gotson.komga.interfaces.api.kobo.dto.ContributorDto
|
import org.gotson.komga.interfaces.api.kobo.dto.ContributorDto
|
||||||
import org.gotson.komga.interfaces.api.kobo.dto.KoboBookMetadataDto
|
import org.gotson.komga.interfaces.api.kobo.dto.KoboBookMetadataDto
|
||||||
|
|
@ -16,9 +17,11 @@ import java.time.ZoneId
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
class KoboDtoDao(
|
class KoboDtoDao(
|
||||||
@Qualifier("dslContextRO") private val dslRO: DSLContext,
|
dslRW: DSLContext,
|
||||||
|
@Qualifier("dslContextRO") dslRO: DSLContext,
|
||||||
private val mapper: ObjectMapper,
|
private val mapper: ObjectMapper,
|
||||||
) : KoboDtoRepository {
|
) : SplitDslDaoBase(dslRW, dslRO),
|
||||||
|
KoboDtoRepository {
|
||||||
private val b = Tables.BOOK
|
private val b = Tables.BOOK
|
||||||
private val m = Tables.MEDIA
|
private val m = Tables.MEDIA
|
||||||
private val d = Tables.BOOK_METADATA
|
private val d = Tables.BOOK_METADATA
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ import org.gotson.komga.domain.model.ContentRestrictions
|
||||||
import org.gotson.komga.domain.model.KomgaUser
|
import org.gotson.komga.domain.model.KomgaUser
|
||||||
import org.gotson.komga.domain.model.UserRoles
|
import org.gotson.komga.domain.model.UserRoles
|
||||||
import org.gotson.komga.domain.persistence.KomgaUserRepository
|
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
|
||||||
import org.gotson.komga.jooq.main.tables.records.UserApiKeyRecord
|
import org.gotson.komga.jooq.main.tables.records.UserApiKeyRecord
|
||||||
import org.gotson.komga.language.toCurrentTimeZone
|
import org.gotson.komga.language.toCurrentTimeZone
|
||||||
|
|
@ -21,9 +22,10 @@ import java.time.ZoneId
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
class KomgaUserDao(
|
class KomgaUserDao(
|
||||||
private val dslRW: DSLContext,
|
dslRW: DSLContext,
|
||||||
@Qualifier("dslContextRO") private val dslRO: DSLContext,
|
@Qualifier("dslContextRO") dslRO: DSLContext,
|
||||||
) : KomgaUserRepository {
|
) : SplitDslDaoBase(dslRW, dslRO),
|
||||||
|
KomgaUserRepository {
|
||||||
private val u = Tables.USER
|
private val u = Tables.USER
|
||||||
private val ur = Tables.USER_ROLE
|
private val ur = Tables.USER_ROLE
|
||||||
private val ul = Tables.USER_LIBRARY_SHARING
|
private val ul = Tables.USER_LIBRARY_SHARING
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package org.gotson.komga.infrastructure.jooq.main
|
||||||
|
|
||||||
import org.gotson.komga.domain.model.Library
|
import org.gotson.komga.domain.model.Library
|
||||||
import org.gotson.komga.domain.persistence.LibraryRepository
|
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
|
||||||
import org.gotson.komga.jooq.main.tables.records.LibraryRecord
|
import org.gotson.komga.jooq.main.tables.records.LibraryRecord
|
||||||
import org.gotson.komga.language.toCurrentTimeZone
|
import org.gotson.komga.language.toCurrentTimeZone
|
||||||
|
|
@ -17,9 +18,10 @@ import java.time.ZoneId
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
class LibraryDao(
|
class LibraryDao(
|
||||||
private val dslRW: DSLContext,
|
dslRW: DSLContext,
|
||||||
@Qualifier("dslContextRO") private val dslRO: DSLContext,
|
@Qualifier("dslContextRO") dslRO: DSLContext,
|
||||||
) : LibraryRepository {
|
) : SplitDslDaoBase(dslRW, dslRO),
|
||||||
|
LibraryRepository {
|
||||||
private val l = Tables.LIBRARY
|
private val l = Tables.LIBRARY
|
||||||
private val ul = Tables.USER_LIBRARY_SHARING
|
private val ul = Tables.USER_LIBRARY_SHARING
|
||||||
private val le = Tables.LIBRARY_EXCLUSIONS
|
private val le = Tables.LIBRARY_EXCLUSIONS
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ import org.gotson.komga.domain.model.MediaExtension
|
||||||
import org.gotson.komga.domain.model.MediaFile
|
import org.gotson.komga.domain.model.MediaFile
|
||||||
import org.gotson.komga.domain.model.ProxyExtension
|
import org.gotson.komga.domain.model.ProxyExtension
|
||||||
import org.gotson.komga.domain.persistence.MediaRepository
|
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.TempTable.Companion.withTempTable
|
||||||
import org.gotson.komga.infrastructure.jooq.deserializeMediaExtension
|
import org.gotson.komga.infrastructure.jooq.deserializeMediaExtension
|
||||||
import org.gotson.komga.infrastructure.jooq.serializeJsonGz
|
import org.gotson.komga.infrastructure.jooq.serializeJsonGz
|
||||||
|
|
@ -27,11 +28,12 @@ import java.time.ZoneId
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
class MediaDao(
|
class MediaDao(
|
||||||
private val dslRW: DSLContext,
|
dslRW: DSLContext,
|
||||||
@Qualifier("dslContextRO") private val dslRO: DSLContext,
|
@Qualifier("dslContextRO") dslRO: DSLContext,
|
||||||
@param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int,
|
@param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int,
|
||||||
private val mapper: ObjectMapper,
|
private val mapper: ObjectMapper,
|
||||||
) : MediaRepository {
|
) : SplitDslDaoBase(dslRW, dslRO),
|
||||||
|
MediaRepository {
|
||||||
private val m = Tables.MEDIA
|
private val m = Tables.MEDIA
|
||||||
private val p = Tables.MEDIA_PAGE
|
private val p = Tables.MEDIA_PAGE
|
||||||
private val f = Tables.MEDIA_FILE
|
private val f = Tables.MEDIA_FILE
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import org.gotson.komga.domain.model.PageHashKnown
|
||||||
import org.gotson.komga.domain.model.PageHashMatch
|
import org.gotson.komga.domain.model.PageHashMatch
|
||||||
import org.gotson.komga.domain.model.PageHashUnknown
|
import org.gotson.komga.domain.model.PageHashUnknown
|
||||||
import org.gotson.komga.domain.persistence.PageHashRepository
|
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.infrastructure.jooq.toOrderBy
|
||||||
import org.gotson.komga.jooq.main.Tables
|
import org.gotson.komga.jooq.main.Tables
|
||||||
import org.gotson.komga.jooq.main.tables.records.PageHashRecord
|
import org.gotson.komga.jooq.main.tables.records.PageHashRecord
|
||||||
|
|
@ -25,9 +26,10 @@ import java.time.ZoneId
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
class PageHashDao(
|
class PageHashDao(
|
||||||
private val dslRW: DSLContext,
|
dslRW: DSLContext,
|
||||||
@Qualifier("dslContextRO") private val dslRO: DSLContext,
|
@Qualifier("dslContextRO") dslRO: DSLContext,
|
||||||
) : PageHashRepository {
|
) : SplitDslDaoBase(dslRW, dslRO),
|
||||||
|
PageHashRepository {
|
||||||
private val p = Tables.MEDIA_PAGE
|
private val p = Tables.MEDIA_PAGE
|
||||||
private val b = Tables.BOOK
|
private val b = Tables.BOOK
|
||||||
private val ph = Tables.PAGE_HASH
|
private val ph = Tables.PAGE_HASH
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import org.gotson.komga.domain.model.ContentRestrictions
|
||||||
import org.gotson.komga.domain.model.ReadList
|
import org.gotson.komga.domain.model.ReadList
|
||||||
import org.gotson.komga.domain.persistence.ReadListRepository
|
import org.gotson.komga.domain.persistence.ReadListRepository
|
||||||
import org.gotson.komga.infrastructure.datasource.SqliteUdfDataSource
|
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.TempTable.Companion.withTempTable
|
||||||
import org.gotson.komga.infrastructure.jooq.inOrNoCondition
|
import org.gotson.komga.infrastructure.jooq.inOrNoCondition
|
||||||
import org.gotson.komga.infrastructure.jooq.sortByValues
|
import org.gotson.komga.infrastructure.jooq.sortByValues
|
||||||
|
|
@ -32,11 +33,12 @@ import java.util.SortedMap
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
class ReadListDao(
|
class ReadListDao(
|
||||||
private val dslRW: DSLContext,
|
dslRW: DSLContext,
|
||||||
@Qualifier("dslContextRO") private val dslRO: DSLContext,
|
@Qualifier("dslContextRO") dslRO: DSLContext,
|
||||||
private val luceneHelper: LuceneHelper,
|
private val luceneHelper: LuceneHelper,
|
||||||
@param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int,
|
@param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int,
|
||||||
) : ReadListRepository {
|
) : SplitDslDaoBase(dslRW, dslRO),
|
||||||
|
ReadListRepository {
|
||||||
private val rl = Tables.READLIST
|
private val rl = Tables.READLIST
|
||||||
private val rlb = Tables.READLIST_BOOK
|
private val rlb = Tables.READLIST_BOOK
|
||||||
private val b = Tables.BOOK
|
private val b = Tables.BOOK
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import org.gotson.komga.domain.model.ReadListRequestBookMatchBook
|
||||||
import org.gotson.komga.domain.model.ReadListRequestBookMatchSeries
|
import org.gotson.komga.domain.model.ReadListRequestBookMatchSeries
|
||||||
import org.gotson.komga.domain.model.ReadListRequestBookMatches
|
import org.gotson.komga.domain.model.ReadListRequestBookMatches
|
||||||
import org.gotson.komga.domain.persistence.ReadListRequestRepository
|
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.infrastructure.jooq.noCase
|
||||||
import org.gotson.komga.jooq.main.Tables
|
import org.gotson.komga.jooq.main.Tables
|
||||||
import org.jooq.DSLContext
|
import org.jooq.DSLContext
|
||||||
|
|
@ -18,8 +19,10 @@ import java.time.LocalDate
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
class ReadListRequestDao(
|
class ReadListRequestDao(
|
||||||
@Qualifier("dslContextRO") private val dslRO: DSLContext,
|
dslRW: DSLContext,
|
||||||
) : ReadListRequestRepository {
|
@Qualifier("dslContextRO") dslRO: DSLContext,
|
||||||
|
) : SplitDslDaoBase(dslRW, dslRO),
|
||||||
|
ReadListRequestRepository {
|
||||||
private val sd = Tables.SERIES_METADATA
|
private val sd = Tables.SERIES_METADATA
|
||||||
private val b = Tables.BOOK
|
private val b = Tables.BOOK
|
||||||
private val bd = Tables.BOOK_METADATA
|
private val bd = Tables.BOOK_METADATA
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import com.fasterxml.jackson.databind.ObjectMapper
|
||||||
import org.gotson.komga.domain.model.R2Locator
|
import org.gotson.komga.domain.model.R2Locator
|
||||||
import org.gotson.komga.domain.model.ReadProgress
|
import org.gotson.komga.domain.model.ReadProgress
|
||||||
import org.gotson.komga.domain.persistence.ReadProgressRepository
|
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
|
||||||
import org.gotson.komga.infrastructure.jooq.TempTable.Companion.withTempTable
|
import org.gotson.komga.infrastructure.jooq.TempTable.Companion.withTempTable
|
||||||
import org.gotson.komga.infrastructure.jooq.deserializeJsonGz
|
import org.gotson.komga.infrastructure.jooq.deserializeJsonGz
|
||||||
|
|
@ -24,11 +25,12 @@ import java.time.ZoneId
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
class ReadProgressDao(
|
class ReadProgressDao(
|
||||||
private val dslRW: DSLContext,
|
dslRW: DSLContext,
|
||||||
@Qualifier("dslContextRO") private val dslRO: DSLContext,
|
@Qualifier("dslContextRO") dslRO: DSLContext,
|
||||||
@param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int,
|
@param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int,
|
||||||
private val mapper: ObjectMapper,
|
private val mapper: ObjectMapper,
|
||||||
) : ReadProgressRepository {
|
) : SplitDslDaoBase(dslRW, dslRO),
|
||||||
|
ReadProgressRepository {
|
||||||
private val r = Tables.READ_PROGRESS
|
private val r = Tables.READ_PROGRESS
|
||||||
private val rs = Tables.READ_PROGRESS_SERIES
|
private val rs = Tables.READ_PROGRESS_SERIES
|
||||||
private val b = Tables.BOOK
|
private val b = Tables.BOOK
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package org.gotson.komga.infrastructure.jooq.main
|
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.persistence.ReadProgressDtoRepository
|
||||||
import org.gotson.komga.interfaces.api.rest.dto.TachiyomiReadProgressDto
|
import org.gotson.komga.interfaces.api.rest.dto.TachiyomiReadProgressDto
|
||||||
import org.gotson.komga.interfaces.api.rest.dto.TachiyomiReadProgressV2Dto
|
import org.gotson.komga.interfaces.api.rest.dto.TachiyomiReadProgressV2Dto
|
||||||
|
|
@ -16,8 +17,10 @@ import java.math.BigDecimal
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
class ReadProgressDtoDao(
|
class ReadProgressDtoDao(
|
||||||
@Qualifier("dslContextRO") private val dslRO: DSLContext,
|
dslRW: DSLContext,
|
||||||
) : ReadProgressDtoRepository {
|
@Qualifier("dslContextRO") dslRO: DSLContext,
|
||||||
|
) : SplitDslDaoBase(dslRW, dslRO),
|
||||||
|
ReadProgressDtoRepository {
|
||||||
private val rlb = Tables.READLIST_BOOK
|
private val rlb = Tables.READLIST_BOOK
|
||||||
private val b = Tables.BOOK
|
private val b = Tables.BOOK
|
||||||
private val d = Tables.BOOK_METADATA
|
private val d = Tables.BOOK_METADATA
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package org.gotson.komga.infrastructure.jooq.main
|
||||||
import org.gotson.komga.domain.model.Author
|
import org.gotson.komga.domain.model.Author
|
||||||
import org.gotson.komga.domain.persistence.ReferentialRepository
|
import org.gotson.komga.domain.persistence.ReferentialRepository
|
||||||
import org.gotson.komga.infrastructure.datasource.SqliteUdfDataSource
|
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.infrastructure.jooq.udfStripAccents
|
||||||
import org.gotson.komga.jooq.main.Tables
|
import org.gotson.komga.jooq.main.Tables
|
||||||
import org.gotson.komga.jooq.main.tables.records.BookMetadataAggregationAuthorRecord
|
import org.gotson.komga.jooq.main.tables.records.BookMetadataAggregationAuthorRecord
|
||||||
|
|
@ -22,8 +23,10 @@ import java.time.LocalDate
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
class ReferentialDao(
|
class ReferentialDao(
|
||||||
@Qualifier("dslContextRO") private val dslRO: DSLContext,
|
dslRW: DSLContext,
|
||||||
) : ReferentialRepository {
|
@Qualifier("dslContextRO") dslRO: DSLContext,
|
||||||
|
) : SplitDslDaoBase(dslRW, dslRO),
|
||||||
|
ReferentialRepository {
|
||||||
private val a = Tables.BOOK_METADATA_AUTHOR
|
private val a = Tables.BOOK_METADATA_AUTHOR
|
||||||
private val sd = Tables.SERIES_METADATA
|
private val sd = Tables.SERIES_METADATA
|
||||||
private val bma = Tables.BOOK_METADATA_AGGREGATION
|
private val bma = Tables.BOOK_METADATA_AGGREGATION
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import org.gotson.komga.domain.model.ContentRestrictions
|
||||||
import org.gotson.komga.domain.model.SeriesCollection
|
import org.gotson.komga.domain.model.SeriesCollection
|
||||||
import org.gotson.komga.domain.persistence.SeriesCollectionRepository
|
import org.gotson.komga.domain.persistence.SeriesCollectionRepository
|
||||||
import org.gotson.komga.infrastructure.datasource.SqliteUdfDataSource
|
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.TempTable.Companion.withTempTable
|
||||||
import org.gotson.komga.infrastructure.jooq.inOrNoCondition
|
import org.gotson.komga.infrastructure.jooq.inOrNoCondition
|
||||||
import org.gotson.komga.infrastructure.jooq.sortByValues
|
import org.gotson.komga.infrastructure.jooq.sortByValues
|
||||||
|
|
@ -31,11 +32,12 @@ import java.time.ZoneId
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
class SeriesCollectionDao(
|
class SeriesCollectionDao(
|
||||||
private val dslRW: DSLContext,
|
dslRW: DSLContext,
|
||||||
@Qualifier("dslContextRO") private val dslRO: DSLContext,
|
@Qualifier("dslContextRO") dslRO: DSLContext,
|
||||||
private val luceneHelper: LuceneHelper,
|
private val luceneHelper: LuceneHelper,
|
||||||
@param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int,
|
@param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int,
|
||||||
) : SeriesCollectionRepository {
|
) : SplitDslDaoBase(dslRW, dslRO),
|
||||||
|
SeriesCollectionRepository {
|
||||||
private val c = Tables.COLLECTION
|
private val c = Tables.COLLECTION
|
||||||
private val cs = Tables.COLLECTION_SERIES
|
private val cs = Tables.COLLECTION_SERIES
|
||||||
private val s = Tables.SERIES
|
private val s = Tables.SERIES
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import org.gotson.komga.domain.model.Series
|
||||||
import org.gotson.komga.domain.persistence.SeriesRepository
|
import org.gotson.komga.domain.persistence.SeriesRepository
|
||||||
import org.gotson.komga.infrastructure.jooq.RequiredJoin
|
import org.gotson.komga.infrastructure.jooq.RequiredJoin
|
||||||
import org.gotson.komga.infrastructure.jooq.SeriesSearchHelper
|
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.TempTable.Companion.withTempTable
|
||||||
import org.gotson.komga.infrastructure.jooq.csAlias
|
import org.gotson.komga.infrastructure.jooq.csAlias
|
||||||
import org.gotson.komga.jooq.main.Tables
|
import org.gotson.komga.jooq.main.Tables
|
||||||
|
|
@ -28,10 +29,11 @@ import java.time.ZoneId
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
class SeriesDao(
|
class SeriesDao(
|
||||||
private val dslRW: DSLContext,
|
dslRW: DSLContext,
|
||||||
@Qualifier("dslContextRO") private val dslRO: DSLContext,
|
@Qualifier("dslContextRO") dslRO: DSLContext,
|
||||||
@param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int,
|
@param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int,
|
||||||
) : SeriesRepository {
|
) : SplitDslDaoBase(dslRW, dslRO),
|
||||||
|
SeriesRepository {
|
||||||
private val s = Tables.SERIES
|
private val s = Tables.SERIES
|
||||||
private val d = Tables.SERIES_METADATA
|
private val d = Tables.SERIES_METADATA
|
||||||
private val rs = Tables.READ_PROGRESS_SERIES
|
private val rs = Tables.READ_PROGRESS_SERIES
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import org.gotson.komga.domain.model.SeriesSearch
|
||||||
import org.gotson.komga.infrastructure.datasource.SqliteUdfDataSource
|
import org.gotson.komga.infrastructure.datasource.SqliteUdfDataSource
|
||||||
import org.gotson.komga.infrastructure.jooq.RequiredJoin
|
import org.gotson.komga.infrastructure.jooq.RequiredJoin
|
||||||
import org.gotson.komga.infrastructure.jooq.SeriesSearchHelper
|
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.TempTable.Companion.withTempTable
|
||||||
import org.gotson.komga.infrastructure.jooq.csAlias
|
import org.gotson.komga.infrastructure.jooq.csAlias
|
||||||
import org.gotson.komga.infrastructure.jooq.inOrNoCondition
|
import org.gotson.komga.infrastructure.jooq.inOrNoCondition
|
||||||
|
|
@ -52,10 +53,12 @@ const val BOOKS_READ_COUNT = "booksReadCount"
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
class SeriesDtoDao(
|
class SeriesDtoDao(
|
||||||
@Qualifier("dslContextRO") private val dslRO: DSLContext,
|
dslRW: DSLContext,
|
||||||
|
@Qualifier("dslContextRO") dslRO: DSLContext,
|
||||||
private val luceneHelper: LuceneHelper,
|
private val luceneHelper: LuceneHelper,
|
||||||
@param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int,
|
@param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int,
|
||||||
) : SeriesDtoRepository {
|
) : SplitDslDaoBase(dslRW, dslRO),
|
||||||
|
SeriesDtoRepository {
|
||||||
private val s = Tables.SERIES
|
private val s = Tables.SERIES
|
||||||
private val d = Tables.SERIES_METADATA
|
private val d = Tables.SERIES_METADATA
|
||||||
private val rs = Tables.READ_PROGRESS_SERIES
|
private val rs = Tables.READ_PROGRESS_SERIES
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import org.gotson.komga.domain.model.AlternateTitle
|
||||||
import org.gotson.komga.domain.model.SeriesMetadata
|
import org.gotson.komga.domain.model.SeriesMetadata
|
||||||
import org.gotson.komga.domain.model.WebLink
|
import org.gotson.komga.domain.model.WebLink
|
||||||
import org.gotson.komga.domain.persistence.SeriesMetadataRepository
|
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.infrastructure.jooq.TempTable.Companion.withTempTable
|
||||||
import org.gotson.komga.jooq.main.Tables
|
import org.gotson.komga.jooq.main.Tables
|
||||||
import org.gotson.komga.jooq.main.tables.records.SeriesMetadataRecord
|
import org.gotson.komga.jooq.main.tables.records.SeriesMetadataRecord
|
||||||
|
|
@ -19,10 +20,11 @@ import java.time.ZoneId
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
class SeriesMetadataDao(
|
class SeriesMetadataDao(
|
||||||
private val dslRW: DSLContext,
|
dslRW: DSLContext,
|
||||||
@Qualifier("dslContextRO") private val dslRO: DSLContext,
|
@Qualifier("dslContextRO") dslRO: DSLContext,
|
||||||
@param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int,
|
@param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int,
|
||||||
) : SeriesMetadataRepository {
|
) : SplitDslDaoBase(dslRW, dslRO),
|
||||||
|
SeriesMetadataRepository {
|
||||||
private val d = Tables.SERIES_METADATA
|
private val d = Tables.SERIES_METADATA
|
||||||
private val g = Tables.SERIES_METADATA_GENRE
|
private val g = Tables.SERIES_METADATA_GENRE
|
||||||
private val st = Tables.SERIES_METADATA_TAG
|
private val st = Tables.SERIES_METADATA_TAG
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package org.gotson.komga.infrastructure.jooq.main
|
package org.gotson.komga.infrastructure.jooq.main
|
||||||
|
|
||||||
|
import org.gotson.komga.infrastructure.jooq.SplitDslDaoBase
|
||||||
import org.gotson.komga.jooq.main.Tables
|
import org.gotson.komga.jooq.main.Tables
|
||||||
import org.jooq.DSLContext
|
import org.jooq.DSLContext
|
||||||
import org.springframework.beans.factory.annotation.Qualifier
|
import org.springframework.beans.factory.annotation.Qualifier
|
||||||
|
|
@ -7,9 +8,9 @@ import org.springframework.stereotype.Component
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
class ServerSettingsDao(
|
class ServerSettingsDao(
|
||||||
private val dslRW: DSLContext,
|
dslRW: DSLContext,
|
||||||
@Qualifier("dslContextRO") private val dslRO: DSLContext,
|
@Qualifier("dslContextRO") dslRO: DSLContext,
|
||||||
) {
|
) : SplitDslDaoBase(dslRW, dslRO) {
|
||||||
private val s = Tables.SERVER_SETTINGS
|
private val s = Tables.SERVER_SETTINGS
|
||||||
|
|
||||||
fun <T> getSettingByKey(
|
fun <T> getSettingByKey(
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package org.gotson.komga.infrastructure.jooq.main
|
||||||
import org.gotson.komga.domain.model.Sidecar
|
import org.gotson.komga.domain.model.Sidecar
|
||||||
import org.gotson.komga.domain.model.SidecarStored
|
import org.gotson.komga.domain.model.SidecarStored
|
||||||
import org.gotson.komga.domain.persistence.SidecarRepository
|
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.infrastructure.jooq.TempTable.Companion.withTempTable
|
||||||
import org.gotson.komga.jooq.main.Tables
|
import org.gotson.komga.jooq.main.Tables
|
||||||
import org.gotson.komga.jooq.main.tables.records.SidecarRecord
|
import org.gotson.komga.jooq.main.tables.records.SidecarRecord
|
||||||
|
|
@ -16,10 +17,11 @@ import java.net.URL
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
class SidecarDao(
|
class SidecarDao(
|
||||||
private val dslRW: DSLContext,
|
dslRW: DSLContext,
|
||||||
@Qualifier("dslContextRO") private val dslRO: DSLContext,
|
@Qualifier("dslContextRO") dslRO: DSLContext,
|
||||||
@param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int,
|
@param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int,
|
||||||
) : SidecarRepository {
|
) : SplitDslDaoBase(dslRW, dslRO),
|
||||||
|
SidecarRepository {
|
||||||
private val sc = Tables.SIDECAR
|
private val sc = Tables.SIDECAR
|
||||||
|
|
||||||
override fun findAll(): Collection<SidecarStored> = dslRO.selectFrom(sc).fetch().map { it.toDomain() }
|
override fun findAll(): Collection<SidecarStored> = dslRO.selectFrom(sc).fetch().map { it.toDomain() }
|
||||||
|
|
|
||||||
|
|
@ -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.domain.persistence.SyncPointRepository
|
||||||
import org.gotson.komga.infrastructure.jooq.BookSearchHelper
|
import org.gotson.komga.infrastructure.jooq.BookSearchHelper
|
||||||
import org.gotson.komga.infrastructure.jooq.RequiredJoin
|
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.jooq.main.Tables
|
||||||
import org.gotson.komga.language.toZonedDateTime
|
import org.gotson.komga.language.toZonedDateTime
|
||||||
import org.jooq.DSLContext
|
import org.jooq.DSLContext
|
||||||
|
|
@ -28,10 +29,11 @@ import java.time.ZoneId
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
class SyncPointDao(
|
class SyncPointDao(
|
||||||
private val dslRW: DSLContext,
|
dslRW: DSLContext,
|
||||||
@Qualifier("dslContextRO") private val dslRO: DSLContext,
|
@Qualifier("dslContextRO") dslRO: DSLContext,
|
||||||
private val bookCommonDao: BookCommonDao,
|
private val bookCommonDao: BookCommonDao,
|
||||||
) : SyncPointRepository {
|
) : SplitDslDaoBase(dslRW, dslRO),
|
||||||
|
SyncPointRepository {
|
||||||
private val b = Tables.BOOK
|
private val b = Tables.BOOK
|
||||||
private val m = Tables.MEDIA
|
private val m = Tables.MEDIA
|
||||||
private val d = Tables.BOOK_METADATA
|
private val d = Tables.BOOK_METADATA
|
||||||
|
|
@ -128,7 +130,7 @@ class SyncPointDao(
|
||||||
.where(condition),
|
.where(condition),
|
||||||
).execute()
|
).execute()
|
||||||
|
|
||||||
return dslRW.findByIdOrNull(syncPointId)!!
|
return findByIdOrNull(syncPointId)!!
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
|
|
@ -172,10 +174,9 @@ class SyncPointDao(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun findByIdOrNull(syncPointId: String): SyncPoint? = dslRO.findByIdOrNull(syncPointId)
|
override fun findByIdOrNull(syncPointId: String): SyncPoint? =
|
||||||
|
dslRO
|
||||||
private fun DSLContext.findByIdOrNull(syncPointId: String): SyncPoint? =
|
.selectFrom(sp)
|
||||||
selectFrom(sp)
|
|
||||||
.where(sp.ID.eq(syncPointId))
|
.where(sp.ID.eq(syncPointId))
|
||||||
.fetchInto(sp)
|
.fetchInto(sp)
|
||||||
.map {
|
.map {
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package org.gotson.komga.infrastructure.jooq.main
|
||||||
import org.gotson.komga.domain.model.Dimension
|
import org.gotson.komga.domain.model.Dimension
|
||||||
import org.gotson.komga.domain.model.ThumbnailBook
|
import org.gotson.komga.domain.model.ThumbnailBook
|
||||||
import org.gotson.komga.domain.persistence.ThumbnailBookRepository
|
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.infrastructure.jooq.TempTable.Companion.withTempTable
|
||||||
import org.gotson.komga.jooq.main.Tables
|
import org.gotson.komga.jooq.main.Tables
|
||||||
import org.gotson.komga.jooq.main.tables.records.ThumbnailBookRecord
|
import org.gotson.komga.jooq.main.tables.records.ThumbnailBookRecord
|
||||||
|
|
@ -15,10 +16,11 @@ import java.net.URL
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
class ThumbnailBookDao(
|
class ThumbnailBookDao(
|
||||||
private val dslRW: DSLContext,
|
dslRW: DSLContext,
|
||||||
@Qualifier("dslContextRO") private val dslRO: DSLContext,
|
@Qualifier("dslContextRO") dslRO: DSLContext,
|
||||||
@param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int,
|
@param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int,
|
||||||
) : ThumbnailBookRepository {
|
) : SplitDslDaoBase(dslRW, dslRO),
|
||||||
|
ThumbnailBookRepository {
|
||||||
private val tb = Tables.THUMBNAIL_BOOK
|
private val tb = Tables.THUMBNAIL_BOOK
|
||||||
|
|
||||||
override fun findAllByBookId(bookId: String): Collection<ThumbnailBook> =
|
override fun findAllByBookId(bookId: String): Collection<ThumbnailBook> =
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package org.gotson.komga.infrastructure.jooq.main
|
||||||
import org.gotson.komga.domain.model.Dimension
|
import org.gotson.komga.domain.model.Dimension
|
||||||
import org.gotson.komga.domain.model.ThumbnailReadList
|
import org.gotson.komga.domain.model.ThumbnailReadList
|
||||||
import org.gotson.komga.domain.persistence.ThumbnailReadListRepository
|
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
|
||||||
import org.gotson.komga.jooq.main.tables.records.ThumbnailReadlistRecord
|
import org.gotson.komga.jooq.main.tables.records.ThumbnailReadlistRecord
|
||||||
import org.jooq.DSLContext
|
import org.jooq.DSLContext
|
||||||
|
|
@ -12,9 +13,10 @@ import org.springframework.transaction.annotation.Transactional
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
class ThumbnailReadListDao(
|
class ThumbnailReadListDao(
|
||||||
private val dslRW: DSLContext,
|
dslRW: DSLContext,
|
||||||
@Qualifier("dslContextRO") private val dslRO: DSLContext,
|
@Qualifier("dslContextRO") dslRO: DSLContext,
|
||||||
) : ThumbnailReadListRepository {
|
) : SplitDslDaoBase(dslRW, dslRO),
|
||||||
|
ThumbnailReadListRepository {
|
||||||
private val tr = Tables.THUMBNAIL_READLIST
|
private val tr = Tables.THUMBNAIL_READLIST
|
||||||
|
|
||||||
override fun findAllByReadListId(readListId: String): Collection<ThumbnailReadList> =
|
override fun findAllByReadListId(readListId: String): Collection<ThumbnailReadList> =
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package org.gotson.komga.infrastructure.jooq.main
|
||||||
import org.gotson.komga.domain.model.Dimension
|
import org.gotson.komga.domain.model.Dimension
|
||||||
import org.gotson.komga.domain.model.ThumbnailSeriesCollection
|
import org.gotson.komga.domain.model.ThumbnailSeriesCollection
|
||||||
import org.gotson.komga.domain.persistence.ThumbnailSeriesCollectionRepository
|
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
|
||||||
import org.gotson.komga.jooq.main.tables.records.ThumbnailCollectionRecord
|
import org.gotson.komga.jooq.main.tables.records.ThumbnailCollectionRecord
|
||||||
import org.jooq.DSLContext
|
import org.jooq.DSLContext
|
||||||
|
|
@ -12,9 +13,10 @@ import org.springframework.transaction.annotation.Transactional
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
class ThumbnailSeriesCollectionDao(
|
class ThumbnailSeriesCollectionDao(
|
||||||
private val dslRW: DSLContext,
|
dslRW: DSLContext,
|
||||||
@Qualifier("dslContextRO") private val dslRO: DSLContext,
|
@Qualifier("dslContextRO") dslRO: DSLContext,
|
||||||
) : ThumbnailSeriesCollectionRepository {
|
) : SplitDslDaoBase(dslRW, dslRO),
|
||||||
|
ThumbnailSeriesCollectionRepository {
|
||||||
private val tc = Tables.THUMBNAIL_COLLECTION
|
private val tc = Tables.THUMBNAIL_COLLECTION
|
||||||
|
|
||||||
override fun findByIdOrNull(thumbnailId: String): ThumbnailSeriesCollection? =
|
override fun findByIdOrNull(thumbnailId: String): ThumbnailSeriesCollection? =
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package org.gotson.komga.infrastructure.jooq.main
|
||||||
import org.gotson.komga.domain.model.Dimension
|
import org.gotson.komga.domain.model.Dimension
|
||||||
import org.gotson.komga.domain.model.ThumbnailSeries
|
import org.gotson.komga.domain.model.ThumbnailSeries
|
||||||
import org.gotson.komga.domain.persistence.ThumbnailSeriesRepository
|
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.infrastructure.jooq.TempTable.Companion.withTempTable
|
||||||
import org.gotson.komga.jooq.main.Tables
|
import org.gotson.komga.jooq.main.Tables
|
||||||
import org.gotson.komga.jooq.main.tables.records.ThumbnailSeriesRecord
|
import org.gotson.komga.jooq.main.tables.records.ThumbnailSeriesRecord
|
||||||
|
|
@ -15,10 +16,11 @@ import java.net.URL
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
class ThumbnailSeriesDao(
|
class ThumbnailSeriesDao(
|
||||||
private val dslRW: DSLContext,
|
dslRW: DSLContext,
|
||||||
@Qualifier("dslContextRO") private val dslRO: DSLContext,
|
@Qualifier("dslContextRO") dslRO: DSLContext,
|
||||||
@param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int,
|
@param:Value("#{@komgaProperties.database.batchChunkSize}") private val batchSize: Int,
|
||||||
) : ThumbnailSeriesRepository {
|
) : SplitDslDaoBase(dslRW, dslRO),
|
||||||
|
ThumbnailSeriesRepository {
|
||||||
private val ts = Tables.THUMBNAIL_SERIES
|
private val ts = Tables.THUMBNAIL_SERIES
|
||||||
|
|
||||||
override fun findByIdOrNull(thumbnailId: String): ThumbnailSeries? =
|
override fun findByIdOrNull(thumbnailId: String): ThumbnailSeries? =
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import com.fasterxml.jackson.databind.ObjectMapper
|
||||||
import io.github.oshai.kotlinlogging.KotlinLogging
|
import io.github.oshai.kotlinlogging.KotlinLogging
|
||||||
import org.gotson.komga.application.tasks.Task
|
import org.gotson.komga.application.tasks.Task
|
||||||
import org.gotson.komga.application.tasks.TasksRepository
|
import org.gotson.komga.application.tasks.TasksRepository
|
||||||
|
import org.gotson.komga.infrastructure.jooq.SplitDslDaoBase
|
||||||
import org.gotson.komga.jooq.tasks.Tables
|
import org.gotson.komga.jooq.tasks.Tables
|
||||||
import org.jooq.DSLContext
|
import org.jooq.DSLContext
|
||||||
import org.jooq.Query
|
import org.jooq.Query
|
||||||
|
|
@ -22,11 +23,12 @@ private val logger = KotlinLogging.logger {}
|
||||||
@Component
|
@Component
|
||||||
@DependsOn("flywaySecondaryMigrationInitializer")
|
@DependsOn("flywaySecondaryMigrationInitializer")
|
||||||
class TasksDao(
|
class TasksDao(
|
||||||
@Qualifier("tasksDslContextRW") private val dslRW: DSLContext,
|
@Qualifier("tasksDslContextRW") dslRW: DSLContext,
|
||||||
@Qualifier("tasksDslContextRO") private val dslRO: DSLContext,
|
@Qualifier("tasksDslContextRO") dslRO: DSLContext,
|
||||||
@param:Value("#{@komgaProperties.tasksDb.batchChunkSize}") private val batchSize: Int,
|
@param:Value("#{@komgaProperties.tasksDb.batchChunkSize}") private val batchSize: Int,
|
||||||
private val objectMapper: ObjectMapper,
|
private val objectMapper: ObjectMapper,
|
||||||
) : TasksRepository {
|
) : SplitDslDaoBase(dslRW, dslRO),
|
||||||
|
TasksRepository {
|
||||||
private val t = Tables.TASK
|
private val t = Tables.TASK
|
||||||
|
|
||||||
private val tasksAvailableCondition =
|
private val tasksAvailableCondition =
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue