Hibernate-reactive: рдХрд╕реНрдЯрдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди

рдХреЛ рдирд┐рд░реНрдорд┐рдд 9 рдЬреБрд▓ре░ 2020  ┬╖  30рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: hibernate/hibernate-reactive

рд╕рднреА рдХреЛ рдирдорд╕реНрддреЗред рдХреНрдпрд╛ рд╣рд╛рдЗрдмрд░рдиреЗрдЯ рд░рд┐рдПрдХреНрдЯрд┐рд╡ рдХрд╕реНрдЯрдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ? рдореИрдВ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ JSONB рдЯрд╛рдЗрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ https://github.com/vladmihalcea/hibernate-types рдЬреЛ рд╣рд╛рдЗрдмрд░рдиреЗрдЯ рдХреЗ AbstractSingleColumnStandardBasicType рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрд╕рдХреЗ рдХрд╕реНрдЯрдо рдкреНрд░рдХрд╛рд░ рдмрдирд╛рддрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдХреЗрд╡рд▓ рд╣рд╛рдЗрдмрд░рдиреЗрдЯ рд╕реЗ рд╣рд╛рдЗрдмрд░рдиреЗрдЯ рддрдХ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рдЗрди рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЙрд▓рдо рд╣рдореЗрд╢рд╛ рд╕рдВрд╕реНрдерд╛рдУрдВ рдореЗрдВ рд╢реВрдиреНрдп рд╣реЛрддреЗ рд╣реИрдВред рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рдореБрдЭреЗ рдпрд╣ рдЖрд▓реЗрдЦ рдорд┐рд▓рд╛ рдЬреЛ рд╣рд╛рдЗрдмрд░рдиреЗрдЯ рдХреЗ UserType рдкрд░ JSONB рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕ рд╕рдорд░реНрдерди рдмрдирд╛рддрд╛ рд╣реИред рдХреНрдпрд╛ рдЗрд╕ рд╕рдордп рдХрд╕реНрдЯрдо рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдФрд░ рд╣рд╛рдЗрдмрд░рдиреЗрдЯ рд░рд┐рдПрдХреНрдЯрд┐рд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЬреНрдЮрд╛рдд рд╕реАрдорд╛ рд╣реИ?

рд╕рднреА 30 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдирдорд╕реНрддреЗ, рдореИрдВрдиреЗ UserType рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ JDBC рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред (рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╢рд╛рдпрдж рдЗрд╕реЗ рдЬреНрдпрд╛рджрд╛рддрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред)

рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдореЗрд░рд╛ рд╡рд┐рдЪрд╛рд░ рдпрд╣ рдерд╛ рдХрд┐ рд▓реЛрдЧ рдЬреЗрдкреАрдП рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдФрд░ AFAIK рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЗрд╕рдХреА рдХреЛрд╢рд┐рд╢ рдХреА?

рдореИрдВрдиреЗ UserType рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреНрд╡рд░рд┐рдд рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ PgClient рдХреНрд╡реЗрд░реА рдЪрд▓рд╛рддреЗ рд╕рдордп рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХ рджреЗрддрд╛ рд╣реИред

рдореИрдВрдиреЗ UserType рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреНрд╡рд░рд┐рдд рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ PgClient рдХреНрд╡реЗрд░реА рдЪрд▓рд╛рддреЗ рд╕рдордп рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХ рджреЗрддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд╕рд┐рд░реНрдл рдЗрд╕рд▓рд┐рдП рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реА рдирдХрд▓реА JDBC рдкрд░рдд рдЕрдзреВрд░реА рд╣реИред (рдХреБрдЫ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рддрд░реАрдХреЗред)

рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ vlad рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ:

    @TypeDefs({
            @TypeDef(name = "json", typeClass = JsonStringType.class),
            @TypeDef(name = "jsonb", typeClass = JsonBinaryType.class)
    })
    @Entity(name="GuineaPig")
    @Table(name="Pig")
    public static class GuineaPig {
        <strong i="6">@Id</strong>
        private Integer id;
        private String name;

        @Type(type = "jsonb")
        @Column(columnDefinition = "jsonb")
        private  Location location;

рдпрд╣ рддреНрд░реБрдЯрд┐ рд╣реИ:

Caused by: io.vertx.core.impl.NoStackTraceThrowable: Parameter at position[0] with class = [com.fasterxml.jackson.databind.node.ObjectNode] and value = [{"country":"UK","city":"Gotham"}] can not be coerced to the expected class = [java.lang.Object] for encoding.

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рдкреАрдЬреА рдХреНрд▓рд╛рдЗрдВрдЯ рдЬреЗрдПрд╕рдУрдПрди рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

@gavinking рдХреНрдпрд╛ рд╣рдореЗрдВ рдкреАрдЬреА-рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдореИрдкрд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

JSON (io.reactiverse.pgclient.data.Json)
JSONB (io.reactiverse.pgclient.data.Json)
POINT (io.reactiverse.pgclient.data.Point)
LINE (io.reactiverse.pgclient.data.Line)
LSEG (io.reactiverse.pgclient.data.LineSegment)
BOX (io.reactiverse.pgclient.data.Box)
PATH (io.reactiverse.pgclient.data.Path)
POLYGON (io.reactiverse.pgclient.data.Polygon)
CIRCLE (io.reactiverse.pgclient.data.Circle)

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЧреНрд░рд╛рд╣рдХ io.reactiverse.pgclient.data.Json рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо UserType рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрднрд╛рд▓рддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐

рдареАрдХ рд╣реИ, рдКрдкрд░ рдореЗрд░реА рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдореЗрд░рд╛ рдпрд╣реА рдорддрд▓рдм рдерд╛ред рд╣рдорд╛рд░реЗ рдЬреЗрдбреАрдмреАрд╕реА рдПрдбреЗрдкреНрдЯрд░ рдЬреЗрдбреАрдмреАрд╕реА рдХреЗ рдкреВрд░реНрдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдХрд░реАрдм рднреА рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдореБрдЭреЗ рдЗрд╕рдХреА рдХрд╛рдлреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рд╡реЗ рдХрднреА рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЕрдзрд┐рдХ "рд╡рд┐рджреЗрд╢реА" JDBC рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ Vert.x API рд╕реЗ/рдореЗрдВ рдореИрдк рдХрд░рдирд╛ рдХрд╛рдлреА рдХрдард┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдХреНрдпрд╛ рд╣рдореЗрдВ рдкреАрдЬреА-рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдореИрдкрд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдареАрдХ рд╣реИ, рдпрдХреАрди рд╣реИ, рдЕрдЧрд░ рдпрд╣ рдХрд░рдирд╛ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИред

рд▓реЗрдХрд┐рди рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рд╣рдореЗрдВ рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╢рд╛рдпрдж UserType рдпрд╣рд╛рдБ рд╕рд╣реА рдЕрдореВрд░реНрддрддрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдПрдХ рдЕрд▓рдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдВред

рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ, рдЗрд╕ рд╣рдж рддрдХ рдХрд┐ рдореМрдЬреВрджрд╛ UserType s рдХреЛ рдХреБрдЫ рднреА рднрдпрд╛рдирдХ рдХрд┐рдП рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЪрд▓реЛ рдЙрдиреНрд╣реЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рд╕реЗ рдкрд▓рд╛рдпрди рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рд╣рдо рдЬрд▓реНрджреА рд╕реЗ рд╕реАрдорд╛рдУрдВ рдореЗрдВ рдЪрд▓реЗ рдЬрд╛рдПрдВ рдХрд┐ рд╡рд╣рд╛рдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╕рдВрднрд╡ рд╣реИред

рдореЗрдВ рджреЗрдЦ рд▓реВрдВрдЧрд╛

рдореЗрдВ рджреЗрдЦ рд▓реВрдВрдЧрд╛

рдкрд╣рд▓реЗ рдХрджрдо рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╛рджреЗ-рд╡реЗрдирд┐рд▓рд╛ UserType рд▓рд┐рдП рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдХрд┐рд╕реА рднреА рдлреИрдВрд╕реА рдбреЗрдЯрд╛рдмреЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдмрд╕ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдореВрд▓ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛рдо рдХрд░рддреА рд╣реИ (рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕реЗ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП )

@gavinking рдирд╣реАрдВ, рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рд╣рд╛рдЗрдмрд░рдиреЗрдЯ рдкреНрд░рдХрд╛рд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрдмрд░рдиреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╕реБрдЭрд╛рд╡ рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдореИрдВ рдЕрдВрдд рдореЗрдВ рдбреАрдмреА рдореЗрдВ рдПрдХ рд╕рд╛рджрд╛ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдЯреЗрдХреНрд╕реНрдЯ/рд╡рд░реНрдЪрд░ рдбрд╛рд▓реВрдВрдЧрд╛, рди рдХрд┐ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕ рдЬреЗрдПрд╕рдУрдПрдирдмреА рдкреНрд░рдХрд╛рд░ред

@gavinking рдирд╣реАрдВ, рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рд╣рд╛рдЗрдмрд░рдиреЗрдЯ рдкреНрд░рдХрд╛рд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрдмрд░рдиреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╕реБрдЭрд╛рд╡ рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдореИрдВ рдЕрдВрдд рдореЗрдВ рдбреАрдмреА рдореЗрдВ рдПрдХ рд╕рд╛рджрд╛ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдЯреЗрдХреНрд╕реНрдЯ/рд╡рд░реНрдЪрд░ рдбрд╛рд▓реВрдВрдЧрд╛, рди рдХрд┐ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕ рдЬреЗрдПрд╕рдУрдПрдирдмреА рдкреНрд░рдХрд╛рд░ред

рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП: рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдмрд╛рдд рд╕реЗ рдЪрд┐рдВрддрд┐рдд рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЬрд╛рд╡рд╛ рдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реИ? рдпрд╣рд╛рдВ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪреАрдЬреЗрдВ рд╣реИрдВред

  • рдПрдХ рдХреЙрд▓рдо рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ JSONB рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдбреНрд░рд╛рдЗрд╡рд░ рдкрд╛рд░рджрд░реНрд╢реА рд░реВрдк рд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдЙрд╕ рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред (рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ, рдореИрдВрдиреЗ рдХрднреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреАред)
  • рджреВрд╕рд░рд╛ рдЖрдкрдХреЗ рдореЙрдбрд▓ рдореЗрдВ рдЬрд╛рд╡рд╛ рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ io.reactiverse.pgclient.data.Json рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдпрд╣ рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ UserType рдЬреИрд╕реЗ рдХреБрдЫ рдФрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

@gavinking
рдореИрдВ Postgres JSONB рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реАрдзреЗ рд╣рд╛рдЗрдмрд░рдиреЗрдЯ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕ https://vladmihalcea.com/how-to-map-json-objects-using-generic-hibernate-types/ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд┐рдпрд╛ред рдпрд╛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрд╣ https://thorben-janssen.com/persist-postgresqls-jsonb-data-type-hibernate/ рдЬрд╣рд╛рдВ рдЧрд╛рдЗрдб UserType рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдареАрдХ рд╣реИ, рдореИрдВ рдЗрд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдЖрдкрдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рд╕рд░рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдЬрд╛рд╡рд╛ String рдХреЛ JSONB рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреЙрд▓рдо рдореЗрдВ рдореИрдк рдХрд░рдирд╛? рдХреНрдпрд╛ рдпрд╣ рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?

@gavinking рдирд╣реАрдВ, рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рд╣реИред рд╣рд╛рдБ рдпрд╣ рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдбреАрдмреА рдореЗрдВ рдЕрдкрдиреА рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореБрдЭреЗ JSON рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ JSON рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдареАрдХ рд╣реИ рддреЛ рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ Vert.x рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдкрд╛рдВрддрд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рд╣рдореЗрдВ рдЗрд╕реЗ рдЖрдЬрдорд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╢рд╛рдпрдж рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

@DavidD рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╕реНрдерд┐рддрд┐ рд╣реИ? рдХреНрдпрд╛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдореИрдВ рдЗрд╕ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реВрдВ?

рдореИрдВ рднрдЯрдХ рдЧрдпрд╛ред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рдордп рд╣реЛ рддреЛ рдЗрд╕рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред

#301 рдореЗрдВ рдореИрдВрдиреЗ рдпрд╣ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реБрдП рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЬреЛрдбрд╝рд╛ рд╣реИ рдХрд┐ UserType s рдорд╛рдирд╡ рд╕рдВрд╕рд╛рдзрди рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдХрдо рд╕реЗ рдХрдо рдЙрд╕ рд╕реАрдорд╛ рддрдХ рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрд╣рдорд╛рд░реЗ PreparedStatement рдФрд░ ResultSet рдПрдбреЗрдкреНрдЯрд░ JDBC рдХреЗ рд╡рдлрд╛рджрд╛рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИрдВ ( рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИ)ред

@gavinking рдХреНрдпрд╛ рд╣рдореЗрдВ рдкреАрдЬреА-рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдореИрдкрд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

JSON (io.reactiverse.pgclient.data.Json)
JSONB (io.reactiverse.pgclient.data.Json)
POINT (io.reactiverse.pgclient.data.Point)
LINE (io.reactiverse.pgclient.data.Line)
LSEG (io.reactiverse.pgclient.data.LineSegment)
BOX (io.reactiverse.pgclient.data.Box)
PATH (io.reactiverse.pgclient.data.Path)
POLYGON (io.reactiverse.pgclient.data.Polygon)
CIRCLE (io.reactiverse.pgclient.data.Circle)

рддреЛ рдЕрдм рд╕рд╡рд╛рд▓ рдмрди рдЬрд╛рддрд╛ рд╣реИ: рдХреНрдпрд╛ рд╣рдо рдЕрдкрдиреЗ JDBC рдПрдбреЗрдкреНрдЯрд░ рдореЗрдВ getObject() рдФрд░ setObject() рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ PostgreSQL рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдард┐рди рдирд┐рд░реНрднрд░рддрд╛ рдмрдирд╛рдП рдмрд┐рдирд╛ рдЗрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ?

рдХреНрдпрд╛ рдРрд╕рд╛ рдХреБрдЫ рд╣реЛрдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛:

@Type(type="passthrough")
Circle circle

рдпрд╣ рдХреЛрдИ рд░реВрдкрд╛рдВрддрд░рдг рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдорд╛рди рдХреЛ рд╡реИрд╕реЗ рд╣реА рдкрд╛рд╕ рдХрд░ рджреЗрддрд╛ рд╣реИ?

рддреЛ рдЕрдм рд╕рд╡рд╛рд▓ рдпрд╣ рдмрди рдЬрд╛рддрд╛ рд╣реИ: рдХреНрдпрд╛ рд╣рдо рдЕрдкрдиреЗ JDBC рдПрдбреЗрдкреНрдЯрд░ рдореЗрдВ getObject() рдФрд░ setObject() рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ PostgreSQL рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдард┐рди рдирд┐рд░реНрднрд░рддрд╛ рдмрдирд╛рдП рдмрд┐рдирд╛ рдЗрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ?

рдЦреИрд░, рдореИрдВрдиреЗ рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ, рдФрд░ рдЬрд╛рд╣рд┐рд░ рддреМрд░ рдкрд░ рд╣рдореЗрдВ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдпрд╛ MySQL рдкрд░ io.vertx.core.json.JsonObject рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЖрдк рдЕрдкрдиреЗ UserType рд╕реЗ рдмрд╕ getObject() / setObject() рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ рдХрд╛рдо:

public class Json implements UserType {

    <strong i="15">@Override</strong>
    public int[] sqlTypes() {
        return new int[] {Types.OTHER};
    }

    <strong i="16">@Override</strong>
    public Class returnedClass() {
        return JsonObject.class;
    }

    <strong i="17">@Override</strong>
    public boolean equals(Object x, Object y) throws HibernateException {
        return Objects.equals(x,y);
    }

    <strong i="18">@Override</strong>
    public int hashCode(Object x) throws HibernateException {
        return Objects.hashCode(x);
    }

    <strong i="19">@Override</strong>
    public Object nullSafeGet(ResultSet rs, String[] names, SharedSessionContractImplementor session, Object owner) throws HibernateException, SQLException {
        return rs.getObject(names[0]);
    }

    <strong i="20">@Override</strong>
    public void nullSafeSet(PreparedStatement st, Object value, int index, SharedSessionContractImplementor session) throws HibernateException, SQLException {
        if (value==null) {
            st.setNull(index, Types.OTHER);
        }
        else {
            st.setObject(index, value);
        }
    }

    ...
}

рдХреНрдпрд╛ рдРрд╕рд╛ рдХреБрдЫ рд╣реЛрдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛:

@Type(type="passthrough")
Circle circle

рдпрд╣ рдХреЛрдИ рд░реВрдкрд╛рдВрддрд░рдг рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдорд╛рди рдХреЛ рд╡реИрд╕реЗ рд╣реА рдкрд╛рд╕ рдХрд░ рджреЗрддрд╛ рд╣реИ?

рд╣рд╛рдБ, рдпрд╣ рднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

54434c94b3ff57261fd905abaeb25961b2ed285c рджреЗрдЦреЗрдВред

рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП io.reactiverse.pgclient.data.Circle рдЬреИрд╕реЗ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

@akoufa рдЕрдм рдЖрдкрдХреЛ рдЖрдкрдХреЗ рдореВрд▓ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдареЛрд╕ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП:

рдХреНрдпрд╛ рд╣рд╛рдЗрдмрд░рдиреЗрдЯ рд░рд┐рдПрдХреНрдЯрд┐рд╡ рдХрд╕реНрдЯрдо UserTypes рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ?

рдЗрд╕рдХрд╛ рдЬрд╡рд╛рдм рд╣реИ рд╣рд╛рдБ!

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдкрдХреЛ рдЗрд╕ рдмрд╛рдд рд╕реЗ рдЕрд╡рдЧрдд рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рднрд▓реЗ рд╣реА рд╣рдо рдЖрдкрдХреЗ UserType JDBC рдЬреИрд╕реА рджрд┐рдЦрдиреЗ рд╡рд╛рд▓реА рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ, рдХрд╡рд░ рдХреЗ рддрд╣рдд рдХреЛрдИ JDBC рдХрдиреЗрдХреНрд╢рди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдЧреИрд░-рдЕрд╡рд░реБрджреНрдз рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рд╣реИред рддреЛ рдХреБрдЫ рдЪреАрдЬреЗрдВ рдмрд╕ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╣реИрдВред

рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ https://github.com/vladmihalcea/hibernate-types

рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд╛рдлреА рдпрдерд╛рд░реНрдерд╡рд╛рджреА рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЙрдкрд░реЛрдХреНрдд рдкреБрд╕реНрддрдХрд╛рд▓рдп JDBC рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЬрдмрдХрд┐ рдЗрд╕рдореЗрдВ рд╕реЗ UserType s рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдиреНрдп рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред

рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рдореБрдЭреЗ рдпрд╣ рдЖрд▓реЗрдЦ рдорд┐рд▓рд╛ рдЬреЛ рд╣рд╛рдЗрдмрд░рдиреЗрдЯ рдХреЗ UserType рдкрд░ рдЬреЗрдПрд╕рдУрдПрдирдмреА рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕ рд╕рдорд░реНрдерди рдмрдирд╛рддрд╛ рд╣реИред

рдЗрд╕ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдореЗрдВ рдХреИрд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдореВрд▓ рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ setObject() рдХреЙрд▓ рдХрд░рдХреЗ Vert.x JsonObject рдХреЛ Vert.x PostgreSQL рдпрд╛ MySQL рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП io.reactiverse.pgclient.data.Circle рдЬреИрд╕реЗ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

рдПрдХ рд╣реА рд╕реМрджрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВрдиреЗ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ред

рд╡реИрд╕реЗ, io.reactiverse.pgclient.data рдорд░ рдЪреБрдХрд╛ рд╣реИред рдпрд╣ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╣реИред рд╡рд╣ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╣рд╛рдБ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реВрдЪреА рд╣реИ:

https://vertx.io/docs/vertx-pg-client/java/#_postgresql_type_mapping

рдореИрдВ рдЗрд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдЖрдкрдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рд╕рд░рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдЬрд╛рд╡рд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ JSONB рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреЙрд▓рдо рдореЗрдВ рдореИрдк рдХрд░рдирд╛?

...

рдареАрдХ рд╣реИ рддреЛ рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ Vert.x рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдкрд╛рдВрддрд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рд╣рдореЗрдВ рдЗрд╕реЗ рдЖрдЬрдорд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╢рд╛рдпрдж рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдКрдкрд░ рджрд┐рдП рдЧрдП рдбреЙрдХреНрд╕ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ ред рдореИрдВрдиреЗ рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рдХреЛ рд╕реАрдзреЗ JSONB -рдЯрд╛рдЗрдк рдХреЙрд▓рдо рдкрд░ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░ рдЧрдпрд╛ред

рддреЛ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рдпрджрд┐ рдЖрдк рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ JsonObject рд╕рд╛рде рдЧрдбрд╝рдмрдбрд╝ рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╢рд╛рдпрдж рдХреНрд▓реАрдирд░ рд╣реИред)

рдЬрд╝рд░реВрд░, рдХреНрдпрд╛ рдЖрдк рдХреБрдЫ рдЕрдиреНрдп рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ? рдЬреИрд╕реЗ рд░реЗрдЦрд╛ рдпрд╛ рд╡реГрддреНрддред рддрд╛рдХрд┐ рд╣рдо рджрд┐рдЦрд╛ рд╕рдХреЗрдВ рдХрд┐ рдорд╛рдирдЪрд┐рддреНрд░рдг рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ

рдирдорд╕реНрддреЗ!

рдХреНрдпрд╛ рдЖрдк рд▓реЛрдЧреЛрдВ рдиреЗ рд╣рд╛рдЗрдмрд░рдиреЗрдЯ-рд░рд┐рдПрдХреНрдЯрд┐рд╡ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП https://github.com/vladmihalcea/hibernate-types рдЬреИрд╕реА рдХреБрдЫ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рджреЗрдЦреА рд╣реИрдВ?

рдЕрдЧрд░ рд╡рд╣ рдЕрднреА рддрдХ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рддреЛ рдореИрдВ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ (рдХреНрд╡рд╛рд░реНрдХрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореИрдВ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ JSON рдХреЙрд▓рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред

рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореБрдЭреЗ рдпрд╣ рдЧрд▓рдд рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди hibernate-reactive рдХреЗрд╡рд▓ UserType рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдХреЗ рдХрд╕реНрдЯрдо рдкреНрд░рдХрд╛рд░ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ? (http://hibernate.org/reactive/documentation/1.0/reference/html_single/#_custom_types)

@AlexandreGuidin , рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @gavinking рдиреЗ рдкрд┐рдЫрд▓реА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдЖрдкрдХреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдЙрддреНрддрд░ рджрд┐рдпрд╛ рд╣реИ: https://github.com/hibernate/hibernate-reactive/issues/279#issuecomment -666289449

рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИ рддреЛ рдХреБрдЫ рдФрд░ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдореЗрдВ рд╕рдВрдХреЛрдЪ рди рдХрд░реЗрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

blafond picture blafond  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

arifpratama398 picture arifpratama398  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

DavideD picture DavideD  ┬╖  31рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

markusdlugi picture markusdlugi  ┬╖  30рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

pqab picture pqab  ┬╖  21рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ