jOOQ3.12.1 Deprecated API Issue

653 views
Skip to first unread message

Debapriya Patra

unread,
Sep 17, 2019, 7:27:41 PM9/17/19
to jOOQ User Group
Hi,

I have upgraded from jOOQ-3.11.8 => jOOQ-3.12.1 which is causing an issue while generating/compiling one of jOOQ generated java class.

Its generating a field which is not getting compiled because method is no more present in 3.12.1 . I am not clear how the class is generated with that method .

Java File Generated By Jooq

/*
 * This file is generated by jOOQ.
 */
package com.chegg.flipper_service.db.tables;


import com.chegg.flipper.service.PostgresJSONJsonNodeBinding;
import com.chegg.flipper_service.db.Public;
import com.chegg.flipper_service.db.enums.EndSessionReason;
import com.chegg.flipper_service.db.enums.SessionFilter;
import com.chegg.flipper_service.db.enums.SessionSide;
import com.chegg.flipper_service.db.tables.records.ScoringSessionRecord;
import com.fasterxml.jackson.databind.JsonNode;

import java.math.BigDecimal;
import java.sql.Timestamp;
import java.util.UUID;

import javax.annotation.processing.Generated;

import org.jooq.Field;
import org.jooq.ForeignKey;
import org.jooq.Name;
import org.jooq.Record;
import org.jooq.Row12;
import org.jooq.Schema;
import org.jooq.Table;
import org.jooq.TableField;
import org.jooq.impl.DSL;
import org.jooq.impl.TableImpl;


/**
 * This class is generated by jOOQ.
 */
@Generated(
    value = {
        "http://www.jooq.org",
        "jOOQ version:3.12.1"
    },
    comments = "This class is generated by jOOQ"
)
@SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class ScoringSession extends TableImpl<ScoringSessionRecord> {

    private static final long serialVersionUID = -871868814;

    /**
     * The reference instance of <code>public.scoring_session</code>
     */
    public static final ScoringSession SCORING_SESSION = new ScoringSession();

    /**
     * The class holding records for this type
     */
    @Override
    public Class<ScoringSessionRecord> getRecordType() {
        return ScoringSessionRecord.class;
    }

    /**
     * The column <code>public.scoring_session.id</code>.
     */
    public final TableField<ScoringSessionRecord, UUID> ID = createField(DSL.name("id"), org.jooq.impl.SQLDataType.UUID, this, "");

    /**
     * The column <code>public.scoring_session.created</code>.
     */
    public final TableField<ScoringSessionRecord, Timestamp> CREATED = createField(DSL.name("created"), org.jooq.impl.SQLDataType.TIMESTAMP, this, "");

    /**
     * The column <code>public.scoring_session.updated</code>.
     */
    public final TableField<ScoringSessionRecord, Timestamp> UPDATED = createField(DSL.name("updated"), org.jooq.impl.SQLDataType.TIMESTAMP, this, "");

    /**
     * The column <code>public.scoring_session.deck_id</code>.
     */
    public final TableField<ScoringSessionRecord, UUID> DECK_ID = createField(DSL.name("deck_id"), org.jooq.impl.SQLDataType.UUID, this, "");

    /**
     * The column <code>public.scoring_session.session_size</code>.
     */
    public final TableField<ScoringSessionRecord, Integer> SESSION_SIZE = createField(DSL.name("session_size"), org.jooq.impl.SQLDataType.INTEGER, this, "");

    /**
     * The column <code>public.scoring_session.session_filter</code>.
     */
    public final TableField<ScoringSessionRecord, SessionFilter> SESSION_FILTER = createField(DSL.name("session_filter"), org.jooq.impl.SQLDataType.VARCHAR.asEnumDataType(com.chegg.flipper_service.db.enums.SessionFilter.class), this, "");

    /**
     * The column <code>public.scoring_session.session_side</code>.
     */
    public final TableField<ScoringSessionRecord, SessionSide> SESSION_SIDE = createField(DSL.name("session_side"), org.jooq.impl.SQLDataType.VARCHAR.asEnumDataType(com.chegg.flipper_service.db.enums.SessionSide.class), this, "");

    /**
     * The column <code>public.scoring_session.card_score</code>.
     */
    public final TableField<ScoringSessionRecord, JsonNode> CARD_SCORE = createField(DSL.name("card_score"), org.jooq.impl.SQLDataType.JSONB, this, "", new PostgresJSONJsonNodeBinding());

    /**
     * The column <code>public.scoring_session.end_session</code>.
     */
    public final TableField<ScoringSessionRecord, Boolean> END_SESSION = createField(DSL.name("end_session"), org.jooq.impl.SQLDataType.BOOLEAN, this, "");

    /**
     * The column <code>public.scoring_session.user_id</code>.
     */
    public final TableField<ScoringSessionRecord, UUID> USER_ID = createField(DSL.name("user_id"), org.jooq.impl.SQLDataType.UUID, this, "");

    /**
     * The column <code>public.scoring_session.percentage</code>.
     */
    public final TableField<ScoringSessionRecord, BigDecimal> PERCENTAGE = createField(DSL.name("percentage"), org.jooq.impl.SQLDataType.NUMERIC(5, 2), this, "");

    /**
     * The column <code>public.scoring_session.reason</code>.
     */
    public final TableField<ScoringSessionRecord, EndSessionReason> REASON = createField(DSL.name("reason"), org.jooq.impl.SQLDataType.VARCHAR.asEnumDataType(com.chegg.flipper_service.db.enums.EndSessionReason.class), this, "");

    /**
     * Create a <code>public.scoring_session</code> table reference
     */
    public ScoringSession() {
        this(DSL.name("scoring_session"), null);
    }

    /**
     * Create an aliased <code>public.scoring_session</code> table reference
     */
    public ScoringSession(String alias) {
        this(DSL.name(alias), SCORING_SESSION);
    }

    /**
     * Create an aliased <code>public.scoring_session</code> table reference
     */
    public ScoringSession(Name alias) {
        this(alias, SCORING_SESSION);
    }

    private ScoringSession(Name alias, Table<ScoringSessionRecord> aliased) {
        this(alias, aliased, null);
    }

    private ScoringSession(Name alias, Table<ScoringSessionRecord> aliased, Field<?>[] parameters) {
        super(alias, null, aliased, parameters, DSL.comment(""));
    }

    public <O extends Record> ScoringSession(Table<O> child, ForeignKey<O, ScoringSessionRecord> key) {
        super(child, key, SCORING_SESSION);
    }

    @Override
    public Schema getSchema() {
        return Public.PUBLIC;
    }

    @Override
    public ScoringSession as(String alias) {
        return new ScoringSession(DSL.name(alias), this);
    }

    @Override
    public ScoringSession as(Name alias) {
        return new ScoringSession(alias, this);
    }

    /**
     * Rename this table
     */
    @Override
    public ScoringSession rename(String name) {
        return new ScoringSession(DSL.name(name), null);
    }

    /**
     * Rename this table
     */
    @Override
    public ScoringSession rename(Name name) {
        return new ScoringSession(name, null);
    }

    // -------------------------------------------------------------------------
    // Row12 type methods
    // -------------------------------------------------------------------------

    @Override
    public Row12<UUID, Timestamp, Timestamp, UUID, Integer, SessionFilter, SessionSide, JsonNode, Boolean, UUID, BigDecimal, EndSessionReason> fieldsRow() {
        return (Row12) super.fieldsRow();
    }
}

Compile Error For the field

/**
* The column <code>public.scoring_session.card_score</code>.
*/
public final TableField<ScoringSessionRecord, JsonNode> CARD_SCORE = createField(DSL.name("card_score"), org.jooq.impl.SQLDataType.JSONB, this, "", new PostgresJSONJsonNodeBinding());


Jooq Generated Log With Compile Error

Ente> Task :generateDbJooqSchemaSource
Sep 17, 2019 3:34:56 PM org.jooq.tools.JooqLogger info
INFO: Initialising properties  : /Users/dpatra/Downloads/FTCodeBase/FlipperService/flipper-service/build/tmp/generateDbJooqSchemaSource/config.xml
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.jooq.tools.reflect.Reflect (file:/Users/dpatra/.gradle/caches/modules-2/files-2.1/org.jooq/jooq/3.12.1/e781f264e17756c3f372d72ec29c7049cc65473c/jooq-3.12.1.jar) to constructor java.lang.invoke.MethodHandles$Lookup(java.lang.Class)
WARNING: Please consider reporting this to the maintainers of org.jooq.tools.reflect.Reflect
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO: No <inputCatalog/> was provided. Generating ALL available catalogs instead.
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO: License parameters
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO: ----------------------------------------------------------
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   Thank you for using jOOQ and jOOQ's code generator
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO: Database parameters
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO: ----------------------------------------------------------
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   dialect                : POSTGRES
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   URL                    : jdbc:postgresql://localhost:5432/flipper
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   target dir             : build/src/generated/java
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   target package         : com.chegg.flipper_service.db
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   includes               : [.*]
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   excludes               : [BATCH_.*|API_OUTPUT_.*|DATABASECHANGELOG.*]
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   includeExcludeColumns  : false
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO: ----------------------------------------------------------
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO: JavaGenerator parameters
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO: ----------------------------------------------------------
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   annotations (generated): true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   annotations (JPA: any) : false
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   annotations (JPA: version):
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   annotations (validation): true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   comments               : true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   comments on attributes : true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   comments on catalogs   : true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   comments on columns    : true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   comments on keys       : true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   comments on links      : true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   comments on packages   : true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   comments on parameters : true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   comments on queues     : true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   comments on routines   : true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   comments on schemas    : true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   comments on sequences  : true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   comments on tables     : true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   comments on udts       : true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   daos                   : true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   deprecated code        : false
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   global references (any): true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   global references (catalogs): true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   global references (keys): true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   global references (links): true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   global references (queues): true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   global references (routines): true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   global references (schemas): true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   global references (sequences): true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   global references (tables): true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   global references (udts): true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   indexes                : true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   instance fields        : true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   interfaces             : false
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   interfaces (immutable) : false
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   javadoc                : true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   keys                   : true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   links                  : true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   pojos                  : true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   pojos (immutable)      : false
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   queues                 : true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   records                : true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   routines               : true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   sequences              : true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   table-valued functions : true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   tables                 : true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   udts                   : true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:   relations              : true
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO: ----------------------------------------------------------
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO: Generation remarks
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO: ----------------------------------------------------------
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO: ----------------------------------------------------------
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO: Generating catalogs      : Total: 1
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@  @@        @@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@        @@@@@@@@@@
@@@@@@@@@@@@@@@@  @@  @@    @@@@@@@@@@
@@@@@@@@@@  @@@@  @@  @@    @@@@@@@@@@
@@@@@@@@@@        @@        @@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@        @@        @@@@@@@@@@
@@@@@@@@@@    @@  @@  @@@@  @@@@@@@@@@
@@@@@@@@@@    @@  @@  @@@@  @@@@@@@@@@
@@@@@@@@@@        @@  @  @  @@@@@@@@@@
@@@@@@@@@@        @@        @@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@  @@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  Thank you for using jOOQ 3.12.1

Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO: ARRAYs fetched           : 0 (0 included, 0 excluded)
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO: Enums fetched            : 3 (3 included, 0 excluded)
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO: No schema version is applied for catalog . Regenerating.
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO:
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO: Generating catalog       : DefaultCatalog.java
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO: ==========================================================
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO: Generating schemata      : Total: 1
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO: No schema version is applied for schema public. Regenerating.
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO: Generating schema        : Public.java
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO: ----------------------------------------------------------
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO: Tables fetched           : 3 (3 included, 0 excluded)
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO: Sequences fetched        : 0 (0 included, 0 excluded)
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO: UDTs fetched             : 0 (0 included, 0 excluded)
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO: Generating tables
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO: Synthetic primary keys   : 0 (0 included, 0 excluded)
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO: Overriding primary keys  : 1 (0 included, 1 excluded)
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO: Generating table         : FlywaySchemaHistory.java [input=flyway_schema_history, output=flyway_schema_history, pk=flyway_schema_history_pk]
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger warn
WARNING: DEPRECATED               : The <expression/> element in <forcedType/> is deprecated. Use <includeExpression/> instead: <userType>com.fasterxml.jackson.databind.JsonNode</userType><binding>com.chegg.flipper.service.PostgresJSONJsonNodeBinding</binding><includeExpression>^.*[.]+(.*)?CARD_SCORE$</includeExpression><types>.*</types><nullability>ALL</nullability><objectType>ALL</objectType>
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger warn
WARNING: DEPRECATED               : The <types/> element in <forcedType/> is deprecated. Use <includeTypes/> instead: <userType>com.fasterxml.jackson.databind.JsonNode</userType><binding>com.chegg.flipper.service.PostgresJSONJsonNodeBinding</binding><includeExpression>^.*[.]+(.*)?CARD_SCORE$</includeExpression><includeTypes>.*</includeTypes><nullability>ALL</nullability><objectType>ALL</objectType>
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO: Embeddables fetched      : 0 (0 included, 0 excluded)
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO: Indexes fetched          : 2 (2 included, 0 excluded)
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO: Generating table         : ScoringSession.java [input=scoring_session, output=scoring_session, pk=N/A]
Sep 17, 2019 3:34:57 PM org.jooq.tools.JooqLogger info
INFO: Forcing type             : public.scoring_session.card_score to <userType>com.fasterxml.jackson.databind.JsonNode</userType><binding>com.chegg.flipper.service.PostgresJSONJsonNodeBinding</binding><includeExpression>^.*[.]+(.*)?CARD_SCORE$</includeExpression><includeTypes>.*</includeTypes><nullability>ALL</nullability><objectType>ALL</objectType>
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Generating table         : ScoringSessionCardScore.java [input=scoring_session_card_score, output=scoring_session_card_score, pk=N/A]
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Tables generated         : Total: 839.671ms
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Generating table POJOs
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Generating POJO          : FlywaySchemaHistory.java
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Generating POJO          : ScoringSession.java
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Generating POJO          : ScoringSessionCardScore.java
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Table POJOs generated    : Total: 876.257ms, +36.586ms
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Generating DAOs
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Generating DAO           : FlywaySchemaHistoryDao.java
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Generating DAO           : ScoringSessionDao.java
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Skipping DAO generation  : ScoringSessionDao.java
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Generating DAO           : ScoringSessionCardScoreDao.java
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Skipping DAO generation  : ScoringSessionCardScoreDao.java
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Table DAOs generated     : Total: 883.655ms, +7.398ms
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Generating table references
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Table refs generated     : Total: 886.1ms, +2.444ms
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Generating Keys
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Keys generated           : Total: 889.325ms, +3.224ms
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Generating Indexes
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Indexes generated        : Total: 891.595ms, +2.27ms
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Generating table records
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Generating record        : FlywaySchemaHistoryRecord.java
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Generating record        : ScoringSessionRecord.java
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Generating record        : ScoringSessionCardScoreRecord.java
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Table records generated  : Total: 915.839ms, +24.243ms
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Generating ENUMs
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Generating ENUM          : EndSessionReason.java
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Generating ENUM          : SessionFilter.java
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Generating ENUM          : SessionSide.java
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Enums generated          : Total: 927.798ms, +11.959ms
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Domains fetched          : 0 (0 included, 0 excluded)
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Routines fetched         : 10 (10 included, 0 excluded)
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Generating routines and table-valued functions
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Generating routine       : UuidGenerateV1.java
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Generating routine       : UuidGenerateV1mc.java
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Generating routine       : UuidGenerateV3.java
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Generating routine       : UuidGenerateV4.java
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Generating routine       : UuidGenerateV5.java
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Generating routine       : UuidNil.java
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Generating routine       : UuidNsDns.java
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Generating routine       : UuidNsOid.java
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Generating routine       : UuidNsUrl.java
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Generating routine       : UuidNsX500.java
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Routines generated       : Total: 1.079s, +151.403ms
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Generation finished: public: Total: 1.079s, +0.271ms
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO:
Sep 17, 2019 3:34:58 PM org.jooq.tools.JooqLogger info
INFO: Removing excess files

> Task :compileJava
/Users/dpatra/Downloads/FTCodeBase/FlipperService/flipper-service/src/main/java/com/chegg/flipper/service/model/event/FlipperEndEvent.java:7: warning: Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type.
@Data
^
/Users/dpatra/Downloads/FTCodeBase/FlipperService/flipper-service/build/src/generated/java/com/chegg/flipper_service/db/tables/ScoringSession.java:99: error: no suitable method found for createField(Name,DataType<JSONB>,ScoringSession,String,PostgresJSONJsonNodeBinding)
    public final TableField<ScoringSessionRecord, JsonNode> CARD_SCORE = createField(DSL.name("card_score"), org.jooq.impl.SQLDataType.JSONB, this, "", new PostgresJSONJsonNodeBinding());
                                                                         ^
    method AbstractTable.<R#1,T#1>createField(String,DataType<T#1>,Table<R#1>) is not applicable
      (cannot infer type-variable(s) R#1,T#1
        (actual and formal argument lists differ in length))
    method AbstractTable.<R#2,T#2>createField(String,DataType<T#2>,Table<R#2>,String) is not applicable
      (cannot infer type-variable(s) R#2,T#2
        (actual and formal argument lists differ in length))
    method AbstractTable.<R#3,T#3,U#1>createField(String,DataType<T#3>,Table<R#3>,String,Converter<T#3,U#1>) is not applicable
      (cannot infer type-variable(s) R#3,T#3,U#1
        (argument mismatch; Name cannot be converted to String))
    method AbstractTable.<R#4,T#4,U#2>createField(String,DataType<T#4>,Table<R#4>,String,Binding<T#4,U#2>) is not applicable
      (cannot infer type-variable(s) R#4,T#4,U#2
        (argument mismatch; Name cannot be converted to String))
    method AbstractTable.<R#5,T#5,X#1,U#3>createField(String,DataType<T#5>,Table<R#5>,String,Converter<X#1,U#3>,Binding<T#5,X#1>) is not applicable
      (cannot infer type-variable(s) R#5,T#5,X#1,U#3
        (actual and formal argument lists differ in length))
    method AbstractTable.<T#6>createField(String,DataType<T#6>) is not applicable
      (cannot infer type-variable(s) T#6
        (actual and formal argument lists differ in length))
    method AbstractTable.<T#7>createField(String,DataType<T#7>,String) is not applicable
      (cannot infer type-variable(s) T#7
        (actual and formal argument lists differ in length))
    method AbstractTable.<T#8,U#4>createField(String,DataType<T#8>,String,Converter<T#8,U#4>) is not applicable
      (cannot infer type-variable(s) T#8,U#4
        (actual and formal argument lists differ in length))
    method AbstractTable.<T#9,U#5>createField(String,DataType<T#9>,String,Binding<T#9,U#5>) is not applicable
      (cannot infer type-variable(s) T#9,U#5
        (actual and formal argument lists differ in length))
    method AbstractTable.<T#10,X#2,U#6>createField(String,DataType<T#10>,String,Converter<X#2,U#6>,Binding<T#10,X#2>) is not applicable
      (cannot infer type-variable(s) T#10,X#2,U#6
        (argument mismatch; Name cannot be converted to String))
    method AbstractTable.<R#7,T#11>createField(Name,DataType<T#11>,Table<R#7>) is not applicable
      (cannot infer type-variable(s) R#7,T#11
        (actual and formal argument lists differ in length))
    method AbstractTable.<R#8,T#12>createField(Name,DataType<T#12>,Table<R#8>,String) is not applicable
      (cannot infer type-variable(s) R#8,T#12
        (actual and formal argument lists differ in length))
    method AbstractTable.<R#9,T#13,U#7>createField(Name,DataType<T#13>,Table<R#9>,String,Converter<T#13,U#7>) is not applicable
      (cannot infer type-variable(s) R#9,T#13,U#7
        (argument mismatch; PostgresJSONJsonNodeBinding cannot be converted to Converter<T#13,U#7>))
    method AbstractTable.<R#10,T#14,U#8>createField(Name,DataType<T#14>,Table<R#10>,String,Binding<T#14,U#8>) is not applicable
      (inference variable T#14 has incompatible equality constraints Object,JSONB)
    method AbstractTable.<R#11,T#15,X#3,U#9>createField(Name,DataType<T#15>,Table<R#11>,String,Converter<X#3,U#9>,Binding<T#15,X#3>) is not applicable
      (cannot infer type-variable(s) R#11,T#15,X#3,U#9
        (actual and formal argument lists differ in length))
    method AbstractTable.<T#16>createField(Name,DataType<T#16>) is not applicable
      (cannot infer type-variable(s) T#16
        (actual and formal argument lists differ in length))
    method AbstractTable.<T#17>createField(Name,DataType<T#17>,String) is not applicable
      (cannot infer type-variable(s) T#17
        (actual and formal argument lists differ in length))
    method AbstractTable.<T#18,U#10>createField(Name,DataType<T#18>,String,Converter<T#18,U#10>) is not applicable
      (cannot infer type-variable(s) T#18,U#10
        (actual and formal argument lists differ in length))
    method AbstractTable.<T#19,U#11>createField(Name,DataType<T#19>,String,Binding<T#19,U#11>) is not applicable
      (cannot infer type-variable(s) T#19,U#11
        (actual and formal argument lists differ in length))
    method AbstractTable.<T#20,X#4,U#12>createField(Name,DataType<T#20>,String,Converter<X#4,U#12>,Binding<T#20,X#4>) is not applicable
      (cannot infer type-variable(s) T#20,X#4,U#12
        (argument mismatch; ScoringSession cannot be converted to String))
  where R#1,T#1,R#2,T#2,R#3,T#3,U#1,R#4,T#4,U#2,R#5,T#5,X#1,U#3,T#6,R#6,T#7,T#8,U#4,T#9,U#5,T#10,X#2,U#6,R#7,T#11,R#8,T#12,R#9,T#13,U#7,R#10,T#14,U#8,R#11,T#15,X#3,U#9,T#16,T#17,T#18,U#10,T#19,U#11,T#20,X#4,U#12 are type-variables:
    R#1 extends Record declared in method <R#1,T#1>createField(String,DataType<T#1>,Table<R#1>)
    T#1 extends Object declared in method <R#1,T#1>createField(String,DataType<T#1>,Table<R#1>)
    R#2 extends Record declared in method <R#2,T#2>createField(String,DataType<T#2>,Table<R#2>,String)
    T#2 extends Object declared in method <R#2,T#2>createField(String,DataType<T#2>,Table<R#2>,String)
    R#3 extends Record declared in method <R#3,T#3,U#1>createField(String,DataType<T#3>,Table<R#3>,String,Converter<T#3,U#1>)
    T#3 extends Object declared in method <R#3,T#3,U#1>createField(String,DataType<T#3>,Table<R#3>,String,Converter<T#3,U#1>)
    U#1 extends Object declared in method <R#3,T#3,U#1>createField(String,DataType<T#3>,Table<R#3>,String,Converter<T#3,U#1>)
    R#4 extends Record declared in method <R#4,T#4,U#2>createField(String,DataType<T#4>,Table<R#4>,String,Binding<T#4,U#2>)
    T#4 extends Object declared in method <R#4,T#4,U#2>createField(String,DataType<T#4>,Table<R#4>,String,Binding<T#4,U#2>)
    U#2 extends Object declared in method <R#4,T#4,U#2>createField(String,DataType<T#4>,Table<R#4>,String,Binding<T#4,U#2>)
    R#5 extends Record declared in method <R#5,T#5,X#1,U#3>createField(String,DataType<T#5>,Table<R#5>,String,Converter<X#1,U#3>,Binding<T#5,X#1>)
    T#5 extends Object declared in method <R#5,T#5,X#1,U#3>createField(String,DataType<T#5>,Table<R#5>,String,Converter<X#1,U#3>,Binding<T#5,X#1>)
    X#1 extends Object declared in method <R#5,T#5,X#1,U#3>createField(String,DataType<T#5>,Table<R#5>,String,Converter<X#1,U#3>,Binding<T#5,X#1>)
    U#3 extends Object declared in method <R#5,T#5,X#1,U#3>createField(String,DataType<T#5>,Table<R#5>,String,Converter<X#1,U#3>,Binding<T#5,X#1>)
    T#6 extends Object declared in method <T#6>createField(String,DataType<T#6>)
    R#6 extends Record declared in class AbstractTable
    T#7 extends Object declared in method <T#7>createField(String,DataType<T#7>,String)
    T#8 extends Object declared in method <T#8,U#4>createField(String,DataType<T#8>,String,Converter<T#8,U#4>)
    U#4 extends Object declared in method <T#8,U#4>createField(String,DataType<T#8>,String,Converter<T#8,U#4>)
    T#9 extends Object declared in method <T#9,U#5>createField(String,DataType<T#9>,String,Binding<T#9,U#5>)
    U#5 extends Object declared in method <T#9,U#5>createField(String,DataType<T#9>,String,Binding<T#9,U#5>)
    T#10 extends Object declared in method <T#10,X#2,U#6>createField(String,DataType<T#10>,String,Converter<X#2,U#6>,Binding<T#10,X#2>)
    X#2 extends Object declared in method <T#10,X#2,U#6>createField(String,DataType<T#10>,String,Converter<X#2,U#6>,Binding<T#10,X#2>)
    U#6 extends Object declared in method <T#10,X#2,U#6>createField(String,DataType<T#10>,String,Converter<X#2,U#6>,Binding<T#10,X#2>)
    R#7 extends Record declared in method <R#7,T#11>createField(Name,DataType<T#11>,Table<R#7>)
    T#11 extends Object declared in method <R#7,T#11>createField(Name,DataType<T#11>,Table<R#7>)
    R#8 extends Record declared in method <R#8,T#12>createField(Name,DataType<T#12>,Table<R#8>,String)
    T#12 extends Object declared in method <R#8,T#12>createField(Name,DataType<T#12>,Table<R#8>,String)
    R#9 extends Record declared in method <R#9,T#13,U#7>createField(Name,DataType<T#13>,Table<R#9>,String,Converter<T#13,U#7>)
    T#13 extends Object declared in method <R#9,T#13,U#7>createField(Name,DataType<T#13>,Table<R#9>,String,Converter<T#13,U#7>)
    U#7 extends Object declared in method <R#9,T#13,U#7>createField(Name,DataType<T#13>,Table<R#9>,String,Converter<T#13,U#7>)
    R#10 extends Record declared in method <R#10,T#14,U#8>createField(Name,DataType<T#14>,Table<R#10>,String,Binding<T#14,U#8>)
    T#14 extends Object declared in method <R#10,T#14,U#8>createField(Name,DataType<T#14>,Table<R#10>,String,Binding<T#14,U#8>)
    U#8 extends Object declared in method <R#10,T#14,U#8>createField(Name,DataType<T#14>,Table<R#10>,String,Binding<T#14,U#8>)
    R#11 extends Record declared in method <R#11,T#15,X#3,U#9>createField(Name,DataType<T#15>,Table<R#11>,String,Converter<X#3,U#9>,Binding<T#15,X#3>)
    T#15 extends Object declared in method <R#11,T#15,X#3,U#9>createField(Name,DataType<T#15>,Table<R#11>,String,Converter<X#3,U#9>,Binding<T#15,X#3>)
    X#3 extends Object declared in method <R#11,T#15,X#3,U#9>createField(Name,DataType<T#15>,Table<R#11>,String,Converter<X#3,U#9>,Binding<T#15,X#3>)
    U#9 extends Object declared in method <R#11,T#15,X#3,U#9>createField(Name,DataType<T#15>,Table<R#11>,String,Converter<X#3,U#9>,Binding<T#15,X#3>)
    T#16 extends Object declared in method <T#16>createField(Name,DataType<T#16>)
    T#17 extends Object declared in method <T#17>createField(Name,DataType<T#17>,String)
    T#18 extends Object declared in method <T#18,U#10>createField(Name,DataType<T#18>,String,Converter<T#18,U#10>)
    U#10 extends Object declared in method <T#18,U#10>createField(Name,DataType<T#18>,String,Converter<T#18,U#10>)
    T#19 extends Object declared in method <T#19,U#11>createField(Name,DataType<T#19>,String,Binding<T#19,U#11>)
    U#11 extends Object declared in method <T#19,U#11>createField(Name,DataType<T#19>,String,Binding<T#19,U#11>)
    T#20 extends Object declared in method <T#20,X#4,U#12>createField(Name,DataType<T#20>,String,Converter<X#4,U#12>,Binding<T#20,X#4>)
    X#4 extends Object declared in method <T#20,X#4,U#12>createField(Name,DataType<T#20>,String,Converter<X#4,U#12>,Binding<T#20,X#4>)
    U#12 extends Object declared in method <T#20,X#4,U#12>createField(Name,DataType<T#20>,String,Converter<X#4,U#12>,Binding<T#20,X#4>)
Note: /Users/dpatra/Downloads/FTCodeBase/FlipperService/flipper-service/src/main/java/com/chegg/flipper/service/controller/FlipperServiceController.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
1 error
1 warning


/Users/dpatra/Downloads/FTCodeBase/FlipperService/flipper-service/build/src/generated/java/com/chegg/flipper_service/db/tables/ScoringSession.java:99: error: no suitable method found for createField(Name,DataType<JSONB>,ScoringSession,String,PostgresJSONJsonNodeBinding)
    public final TableField<ScoringSessionRecord, JsonNode> CARD_SCORE = createField(DSL.name("card_score"), org.jooq.impl.SQLDataType.JSONB, this, "", new PostgresJSONJsonNodeBinding());
                                                                       


I thought may be somewhere its picking the 3.11.89 version while generating the java files and while compile its using 3.12.1 which is causing issue. But Jooq log clearly says its using 3.12.1 to generate the files.


Screen Shot 2019-09-17 at 4.17.42 PM.png


Screen Shot 2019-09-17 at 4.17.42 PM.png


Find some attached screenshots.

Can someone help me here resolving this issue?



Thanks,
Deba


 

Knut Wannheden

unread,
Sep 18, 2019, 2:07:40 AM9/18/19
to jooq...@googlegroups.com
Hi Deba,

As you can see your CARD_SCORE field uses the new JSONB data type (new in jOOQ 3.12) and as a consequence you need to change the generic type parameters and implementation of PostgresJSONJsonNodeBinding to match that. I suggest you take a look at https://github.com/jOOQ/jOOQ/issues/9195 where this question was recently discussed.

Hope this helps,
Knut

--
You received this message because you are subscribed to the Google Groups "jOOQ User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jooq-user+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jooq-user/165c42fd-5d15-4777-83bf-8ab3fc52c92f%40googlegroups.com.

Lukas Eder

unread,
Sep 18, 2019, 3:57:34 AM9/18/19
to jOOQ User Group
I do wonder if this change of introducing the new org.jooq.JSON(B) types was a bit too "harsh" for existing jOOQ users. What remedies would be possible? We cannot customise compilation errors here...

Debapriya Patra

unread,
Sep 18, 2019, 10:40:34 AM9/18/19
to jOOQ User Group
Hi,

I am little confused here.

This is what is my JsonBinder is.

package com.chegg.flipper.service;

import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonNull;
import org.jooq.*;
import org.jooq.conf.ParamType;
import org.jooq.impl.DSL;

import java.sql.SQLException;
import java.sql.SQLFeatureNotSupportedException;
import java.sql.Types;
import java.util.Objects;

import static org.jooq.tools.Convert.convert;

public class PostgresJSONGsonBinding implements Binding<Object, JsonElement>z {

    // The converter does all the work
    @Override
    public Converter<Object, JsonElement> converter() {
        return new Converter<Object, JsonElement>() {
            @Override
            public JsonElement from(Object t) {
                return t == null ? JsonNull.INSTANCE : new Gson().fromJson("" + t, JsonElement.class);
            }

            @Override
            public Object to(JsonElement u) {
                return u == null || u == JsonNull.INSTANCE ? null : new Gson().toJson(u);
            }

            @Override
            public Class<Object> fromType() {
                return Object.class;
            }

            @Override
            public Class<JsonElement> toType() {
                return JsonElement.class;
            }
        };
    }

    // Rending a bind variable for the binding context's value and casting it to the json type
    @Override
    public void sql(BindingSQLContext<JsonElement> ctx) throws SQLException {
        // Depending on how you generate your SQL, you may need to explicitly distinguish
        // between jOOQ generating bind variables or inlined literals.
        if (ctx.render().paramType() == ParamType.INLINED)
            ctx.render().visit(DSL.inline(ctx.convert(converter()).value())).sql("::json");
        else
            ctx.render().sql("?::json");
    }

    // Registering VARCHAR types for JDBC CallableStatement OUT parameters
    @Override
    public void register(BindingRegisterContext<JsonElement> ctx) throws SQLException {
        ctx.statement().registerOutParameter(ctx.index(), Types.VARCHAR);
    }

    // Converting the JsonElement to a String value and setting that on a JDBC PreparedStatement
    @Override
    public void set(BindingSetStatementContext<JsonElement> ctx) throws SQLException {
        ctx.statement().setString(ctx.index(), Objects.toString(ctx.convert(converter()).value(), null));
    }

    // Getting a String value from a JDBC ResultSet and converting that to a JsonElement
    @Override
    public void get(BindingGetResultSetContext<JsonElement> ctx) throws SQLException {
        ctx.convert(converter()).value(ctx.resultSet().getString(ctx.index()));
    }

    // Getting a String value from a JDBC CallableStatement and converting that to a JsonElement
    @Override
    public void get(BindingGetStatementContext<JsonElement> ctx) throws SQLException {
        ctx.convert(converter()).value(ctx.statement().getString(ctx.index()));
    }

    // Setting a value on a JDBC SQLOutput (useful for Oracle OBJECT types)
    @Override
    public void set(BindingSetSQLOutputContext<JsonElement> ctx) throws SQLException {
        throw new SQLFeatureNotSupportedException();
    }

    // Getting a value from a JDBC SQLInput (useful for Oracle OBJECT types)
    @Override
    public void get(BindingGetSQLInputContext<JsonElement> ctx) throws SQLException {
        throw new SQLFeatureNotSupportedException();
    }
}

What changes you are expecting me to do here ?

Thanks,
Deba


On Wednesday, September 18, 2019 at 12:57:34 AM UTC-7, Lukas Eder wrote:
I do wonder if this change of introducing the new org.jooq.JSON(B) types was a bit too "harsh" for existing jOOQ users. What remedies would be possible? We cannot customise compilation errors here...

To unsubscribe from this group and stop receiving emails from it, send an email to jooq...@googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "jOOQ User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jooq...@googlegroups.com.

Lukas Eder

unread,
Sep 18, 2019, 11:01:11 AM9/18/19
to jOOQ User Group
Mainly, replace java.lang.Object references by org.jooq.JSONB, and fix code that does not compile by wrapping / unwrapping the JSON string from the JSONB class.

I hope this helps,
Lukas

To unsubscribe from this group and stop receiving emails from it, send an email to jooq-user+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jooq-user/f2328f39-0da1-4a31-a10e-0fab02f7fef1%40googlegroups.com.

Debapriya Patra

unread,
Sep 18, 2019, 11:34:21 AM9/18/19
to jOOQ User Group
Thank You Lukas !! It worked for me
...

Samir Faci

unread,
Sep 20, 2019, 10:10:01 PM9/20/19
to jooq...@googlegroups.com
Ooh that's awesome. I missed the changelog on this release. I'm glad we finally have Jsonb support. 



--
You received this message because you are subscribed to the Google Groups "jOOQ User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jooq-user+...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages