PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

R2DBC और एनम (PostgreSQL)

org.springframework.data:spring-data-r2dbc:1.0.0.RELEASE के साथ परीक्षण किया गया और io.r2dbc:r2dbc-postgresql:0.8.1.RELEASE

कोटलिन संस्करण।

  1. एक एनम वर्ग परिभाषित करें

    enum class Mood {
        UNKNOWN,
        HAPPY,
        SAD
    }
    
  2. एक कस्टम कोडेक बनाएं

    class MoodCodec(private val allocator: ByteBufAllocator) :  Codec<Mood> {
        override fun canEncodeNull(type: Class<*>): Boolean = false
    
        override fun canEncode(value: Any): Boolean = value is Mood
    
        override fun encode(value: Any): Parameter {
            return Parameter(Format.FORMAT_TEXT, oid) {
                ByteBufUtils.encode(allocator, (value as Mood).name)
            }
        }
    
        override fun canDecode(dataType: Int, format: Format, type: Class<*>): Boolean = dataType == oid
    
        override fun decode(buffer: ByteBuf?, dataType: Int, format: Format, type: Class<out Mood>): Mood? {
            buffer ?: return null
            return Mood.valueOf(ByteBufUtils.decode(buffer))
        }
    
        override fun type(): Class<*> = Mood::class.java
    
        override fun encodeNull(): Parameter =
            Parameter(Format.FORMAT_TEXT, oid, Parameter.NULL_VALUE)
    
        companion object {
            // Get form `select oid from pg_type where typname = 'mood'`
            private const val oid = YOUR_ENUM_OID
        }
    }
    
  3. कोडेक पंजीकृत करें

    आपको परिवर्तन की आवश्यकता हो सकती है runtimeOnly("io.r2dbc:r2dbc-postgresql") करने के लिए implementation("io.r2dbc:r2dbc-postgresql")

    @Configuration
    @EnableR2dbcRepositories
    class AppConfig : AbstractR2dbcConfiguration() {
        override fun connectionFactory(): ConnectionFactory = PostgresqlConnectionConfiguration.builder()
            .port(5432) // Add your config here.
            .codecRegistrar { _, allocator, registry ->
                registry.addFirst(MoodCodec(allocator))
                Mono.empty()
            }.build()
            .let { PostgresqlConnectionFactory(it) }
    }
    



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgresql में गतिशील रूप से जेनरेट किया गया कर्सर

  2. PostgreSQL में सिंगल कोट्स और डबल कोट्स में क्या अंतर है?

  3. MySQL बनाम PostgreSQL? मुझे अपने Django प्रोजेक्ट के लिए किसे चुनना चाहिए?

  4. s3 से postgresql rds में डेटा फ़ाइलों को कैसे आयात करें

  5. PostgreSQL मल्टी INSERT...कई कॉलम के साथ रिटर्निंग