diff --git a/src/main/kotlin/fr/postgresjson/connexion/Connection.kt b/src/main/kotlin/fr/postgresjson/connexion/Connection.kt index 5100816..a1f90df 100644 --- a/src/main/kotlin/fr/postgresjson/connexion/Connection.kt +++ b/src/main/kotlin/fr/postgresjson/connexion/Connection.kt @@ -15,8 +15,8 @@ import java.util.concurrent.CompletableFuture interface Executable { fun > select(sql: String, typeReference: TypeReference, values: List = emptyList()): R? fun > select(sql: String, typeReference: TypeReference, values: Map): R? - fun >> select(sql: String, typeReference: TypeReference, values: List = emptyList()): R? - fun >> select(sql: String, typeReference: TypeReference, values: Map): R + fun > select(sql: String, typeReference: TypeReference>, values: List = emptyList()): List + fun > select(sql: String, typeReference: TypeReference>, values: Map): List fun exec(sql: String, values: List = emptyList()): CompletableFuture fun exec(sql: String, values: Map): CompletableFuture } @@ -64,18 +64,18 @@ class Connection( inline fun > selectOne(sql: String, values: Map): R? = select(sql, object: TypeReference() {}, values) - override fun >> select(sql: String, typeReference: TypeReference, values: List): R { + override fun > select(sql: String, typeReference: TypeReference>, values: List): List { val future = connect().sendPreparedStatement(sql, compileArgs(values)) val json = future.get().rows[0].getString(0) return if (json === null) { - listOf>() as R + listOf>() as List } else { serializer.deserializeList(json, typeReference) } } - inline fun >> select(sql: String, values: List = emptyList()): R = - select(sql, object: TypeReference() {}, values) + inline fun > select(sql: String, values: List = emptyList()): List = + select(sql, object: TypeReference>() {}, values) fun > select( sql: String, @@ -116,18 +116,18 @@ class Connection( ): Paginated = select(sql, page, limit, object: TypeReference>() {}, values) - override fun >> select( + override fun > select( sql: String, - typeReference: TypeReference, + typeReference: TypeReference>, values: Map - ): R { + ): List { return replaceArgs(sql, values) { select(this.sql, typeReference, this.parameters) } } - inline fun >> select(sql: String, values: Map): R = - select(sql, object: TypeReference() {}, values) + inline fun > select(sql: String, values: Map): List = + select(sql, object: TypeReference>() {}, values) override fun exec(sql: String, values: List): CompletableFuture { return connect().sendPreparedStatement(sql, compileArgs(values)) diff --git a/src/main/kotlin/fr/postgresjson/connexion/Requester.kt b/src/main/kotlin/fr/postgresjson/connexion/Requester.kt index 7ec5fc7..ab3af37 100644 --- a/src/main/kotlin/fr/postgresjson/connexion/Requester.kt +++ b/src/main/kotlin/fr/postgresjson/connexion/Requester.kt @@ -89,15 +89,15 @@ class Requester ( } inline fun > selectOne(values: Map): R? = select(object: TypeReference() {}, values) - override fun >> select(typeReference: TypeReference, values: List): R { + override fun > select(typeReference: TypeReference>, values: List): List { return connection.select(this.toString(), typeReference, values) } - inline fun >> select(values: List = emptyList()): R = select(object: TypeReference() {}, values) + inline fun > select(values: List = emptyList()): List = select(object: TypeReference>() {}, values) - override fun >> select(typeReference: TypeReference, values: Map): R { + override fun > select(typeReference: TypeReference>, values: Map): List { return connection.select(this.toString(), typeReference, values) } - inline fun >> select(values: Map): R = select(object: TypeReference() {}, values) + inline fun > select(values: Map): List = select(object: TypeReference>() {}, values) override fun exec(values: List): CompletableFuture { return connection.exec(sql, values) @@ -138,24 +138,24 @@ class Requester ( /** * Select list of entities with list of parameters */ - override fun >> select(typeReference: TypeReference, values: List): R { + override fun > select(typeReference: TypeReference>, values: List): List { val args = compileArgs(values) val sql = "SELECT * FROM ${definition.name} ($args)" return connection.select(sql, typeReference, values) } - inline fun >> select(values: List = emptyList()): R = select(object: TypeReference() {}, values) + inline fun > select(values: List = emptyList()): List = select(object: TypeReference>() {}, values) /** * Select list of entities with named parameters */ - override fun >> select(typeReference: TypeReference, values: Map): R { + override fun > select(typeReference: TypeReference>, values: Map): List { val args = compileArgs(values) val sql = "SELECT * FROM ${definition.name} ($args)" return connection.select(sql, typeReference, values) } - inline fun >> select(values: Map): R = select(object: TypeReference() {}, values) + inline fun > select(values: Map): List = select(object: TypeReference>() {}, values) override fun exec(values: List): CompletableFuture { val args = compileArgs(values) @@ -206,8 +206,8 @@ class Requester ( fun > select(typeReference: TypeReference, values: List = emptyList()): R? fun > select(typeReference: TypeReference, values: Map): R? - fun >> select(typeReference: TypeReference, values: List = emptyList()): R - fun >> select(typeReference: TypeReference, values: Map): R + fun > select(typeReference: TypeReference>, values: List = emptyList()): List + fun > select(typeReference: TypeReference>, values: Map): List fun exec(values: List = emptyList()): CompletableFuture fun exec(values: Map): CompletableFuture diff --git a/src/main/kotlin/fr/postgresjson/migration/Migrations.kt b/src/main/kotlin/fr/postgresjson/migration/Migrations.kt index 1b3fe56..7d63be3 100644 --- a/src/main/kotlin/fr/postgresjson/migration/Migrations.kt +++ b/src/main/kotlin/fr/postgresjson/migration/Migrations.kt @@ -59,15 +59,15 @@ data class Migrations private constructor( */ private fun getMigrationFromDB() { File(this::class.java.getResource("/sql/migration/findAllFunction.sql").toURI()).let { - connection.select>(it.readText()) - .filterNotNull().map { function -> + connection.select(it.readText()) + .map { function -> functions[function.filename] = Function(function.up, function.down, connection, function.executedAt) } } File(this::class.java.getResource("/sql/migration/findAllHistory.sql").toURI()).let { - connection.select>(it.readText()) - .filterNotNull().map { query -> + connection.select(it.readText()) + .map { query -> queries[query.filename] = Query(query.filename, query.up, query.down, connection, query.executedAt) } }