package fr.postgresjson.connexion import com.fasterxml.jackson.core.type.TypeReference import com.github.jasync.sql.db.QueryResult import fr.postgresjson.entity.EntityI interface EmbedExecutable { val connection: Connection override fun toString(): String val name: String /* Select One */ /** * Select One entity with list of parameters */ fun > select( typeReference: TypeReference, values: List = emptyList(), block: SelectOneCallback = {} ): R? fun > select( typeReference: TypeReference, values: Map, block: SelectOneCallback = {} ): R? /* Select Miltiples */ fun > select( typeReference: TypeReference>, values: List = emptyList(), block: SelectCallback = {} ): List fun > select( typeReference: TypeReference>, values: Map, block: SelectCallback = {} ): List /* Select Paginated */ fun > select( page: Int, limit: Int, typeReference: TypeReference>, values: Map, block: SelectPaginatedCallback = {} ): Paginated fun exec(values: List = emptyList()): QueryResult fun exec(values: Map): QueryResult fun sendQuery(values: List = emptyList()): Int fun sendQuery(values: Map): Int fun sendQuery(vararg values: Pair): Int = sendQuery(values.toMap()) }