Hibernate Convert String Values to Varbinary and try insert as Hexa decimal

I have following model class that

@ToString
@Entity
@Builder
@EqualsAndHashCode
@Table(name = "fare_rules")
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class FareRule implements Serializable {
    @Column(name = "id")
    @EqualsAndHashCode.Exclude
    private long id;

    @Id
    @Column(name = "rule_key")
    private long ruleKey;

    @Column(name = "code")
    private String code;//

    @Column(name = "basis_code")
    private String basisCode;//

    @Column(name = "type")
    private String type;//

    @Column(name = "active")
    private boolean active;

    @Column(name = "description")
    private String description;//

    @Column(name = "min_pax_count")
    private int minPaxCount;

    @Column(name = "pax_category_id")
    private long paxCategoryID;

    @Column(name = "currency_id")
    private String currencyID;//

    @Column(name = "booking_time")
    private String bookingTime;//

    @Column(name = "exclude_from_stopovers")
    private boolean excludeFromStopovers;

    @Column(name = "allowed_adult")
    private boolean allowedAdult;

    @Column(name = "allowed_child")
    private boolean allowedChild;

    @Column(name = "allowed_infant")
    private boolean allowedInfant;

    @Column(name = "enable_validity_period")
    private boolean enableValidityPeriod;

    @Column(name = "segment_name")
    private String segmentName;//

    @Column(name = "allowed_adult_refund")
    private boolean allowAdultRefund;

    @Column(name = "allowed_child_refund")
    private boolean allowChildRefund;

    @Column(name = "allowed_infant_refund")
    private boolean allowInfantRefund;

    @Transient
    @OneToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "fare_rule_id", updatable = false)
    private FareRuleDetails details;

    @Transient
    @OneToOne
    @JoinColumn(name = "fare_rule_id", updatable = false)
    private FareRuleJourneys journeys;

    @Builder.Default
    @Volatile
    @Column(name = "version")
    @EqualsAndHashCode.Exclude
    private String version = "1.0";//

    @Volatile
    @CreationTimestamp
    @Column(name = "create_timestamp", updatable = false)
    @EqualsAndHashCode.Exclude
    private Instant createTimestamp;

    @Volatile
    @Column(name = "created_by")
    @EqualsAndHashCode.Exclude
    private String createdBy;//

    @Volatile
    @UpdateTimestamp
    @Column(name = "update_timestamp")
    @EqualsAndHashCode.Exclude
    private Instant updateTimestamp;

    @Volatile
    @Column(name = "updated_by")
    @EqualsAndHashCode.Exclude
    private String updatedBy;//

    @Column(name = "effective_start_date")
    @EqualsAndHashCode.Exclude
    @Builder.Default
    private Instant effectiveStartDate = Instant.now();

    @Volatile
    @Column(name = "effective_end_date")
    @EqualsAndHashCode.Exclude
    @Builder.Default
    private Instant effectiveEndDate = DateTimeUtils.UNLIMITED_LOCAL_INSTANT;

    @Volatile
    @Column(name = "effective_sales_end_date")
    @EqualsAndHashCode.Exclude
    @Builder.Default
    private Instant effectiveSalesEndDate = Instant.now();

    @Column(name = "migration_id")
    private String migrationId;//

    @Deprecated
    @Column(name = "interlineability")
    private Boolean interlineability;

    @Column(name = "interline_indicator")
    @Enumerated(EnumType.STRING)
    private InterlineIndicatorOption interlineIndicator;

    @Builder.Default
    @Column(name = "fare_update_in_progress")
    private Boolean fareUpdateInProgress = false;

    @Transient
    public boolean isOneWay() {
        return journeys != null && journeys.isOpenWayJourney();
    }

    @Transient
    public boolean isReturn() {
        return journeys != null && journeys.isReturnJourney();
    }

    public void setNewKeys(LongSupplier supplier) {
        if (this.getId() == 0) {
            this.setId(supplier.getAsLong());
        }
        this.setRuleKey(supplier.getAsLong());
    }

    public void addMigrationId(String carrierFareRuleId) {
        if (migrationId == null) {
            migrationId = carrierFareRuleId;
        } else {
            migrationId = migrationId + "," + carrierFareRuleId;
        }
    }

    public boolean isAdhoc() {
        return StringUtils.isBlank(code);
    }
}

In here there are some string values and db type is varchar.

After migrating spring boot 3 and hibernate 6, when those string values saving those are converted in to hexadecimal values as varbinary due to this limited charactor violation is happening. below is the postgres log

2024-05-06 09:45:59.495 ERROR 33429 --- [ault-executor-0] c.a.p.f.i.ErrorHandlerInterceptor        : could not execute statement [ERROR: value too long for type character varying(2)
  Where: unnamed portal with parameters: 
  
  
  
  
  $1 = 'TRUE', 
  $2 = 'TRUE', 
  $3 = 'TRUE', 
  $4 = 'TRUE', 
  $5 = 'TRUE', 
  $6 = 'TRUE', 
  $7 = 'TRUE', 
  $8 = '\xaced00057372001c6f72672e706f737467726573716c2e7574696c2e50476f626a6563744bf895caac6f64440200024c0004747970657400124c6a6176612f6c616e672f537472696e673b4c000576616c756571007e000178707400056c74726565740000', 
  $9 = '\xaced00057372001c6f72672e706f737467726573716c2e7574696c2e50476f626a6563744bf895caac6f64440200024c0004747970657400124c6a6176612f6c616e672f537472696e673b4c000576616c756571007e000178707400056c74726565740000', 
  $10 = '\xaced00057372001c6f72672e706f737467726573716c2e7574696c2e50476f626a6563744bf895caac6f64440200024c0004747970657400124c6a6176612f6c616e672f537472696e673b4c000576616c756571007e000178707400056c7472656574000841524f534d41444c', 
  $11 = '2024-05-06 04:15:59.474945+00', 
  $12 = '\xaced00057372001c6f72672e706f737467726573716c2e7574696c2e50476f626a6563744bf895caac6f64440200024c0004747970657400124c6a6176612f6c616e672f537472696e673b4c000576616c756571007e000178707400056c7472656570', 
  $13 = '\xaced00057372001c6f72672e706f737467726573716c2e7574696c2e50476f626a6563744bf895caac6f64440200024c0004747970657400124c6a6176612f6c616e672f537472696e673b4c000576616c756571007e000178707400056c74726565740003495252', 
  $14 = '\xaced00057372001c6f72672e706f737467726573716c2e7574696c2e50476f626a6563744bf895caac6f64440200024c0004747970657400124c6a6176612f6c616e672f537472696e673b4c000576616c756571007e000178707400056c74726565740000', 
  $15 = '3999-12-31 18:30:00+00', 
  $16 = '2024-05-06 04:15:59.255437+00', 
  $17 = '2024-05-07 00:00:00+00', 
  $18 = 'FALSE', 
  $19 = 'TRUE', 
  $20 = 'FALSE', 
  $21 = '4', 
  $22 = 'NON_INTERLIENABLE', 
  $23 = 'FALSE', 
  $24 = '\xaced00057372001c6f72672e706f737467726573716c2e7574696c2e50476f626a6563744bf895caac6f64440200024c0004747970657400124c6a6176612f6c616e672f537472696e673b4c000576616c756571007e000178707400056c7472656570', 
  $25 = '1', 
  $26 = '1', 
  $27 = '\xaced00057372001c6f72672e706f737467726573716c2e7574696c2e50476f626a6563744bf895caac6f64440200024c0004747970657400124c6a6176612f6c616e672f537472696e673b4c000576616c756571007e000178707400056c7472656574000646523a203238', 
  $28 = '\xaced00057372001c6f72672e706f737467726573716c2e7574696c2e50476f626a6563744bf895caac6f64440200024c0004747970657400124c6a6176612f6c616e672f537472696e673b4c000576616c756571007e000178707400056c747265657400024e54', 
  $29 = '2024-05-06 04:15:59.475003+00', 
  $30 = '\xaced00057372001c6f72672e706f737467726573716c2e7574696c2e50476f626a6563744bf895caac6f64440200024c0004747970657400124c6a6176612f6c616e672f537472696e673b4c000576616c756571007e000178707400056c7472656570', 
  $31 = '\xaced00057372001c6f72672e706f737467726573716c2e7574696c2e50476f626a6563744bf895caac6f64440200024c0004747970657400124c6a6176612f6c616e672f537472696e673b4c000576616c756571007e000178707400056c74726565740003312e30', 
  $32 = '28'] 
  
  
  
  [insert into fare_rules (
  active,
  allowed_adult_refund,
  allowed_child_refund,
  allowed_infant_refund,
  allowed_adult,
  allowed_child,
  allowed_infant,
  basis_code,
  booking_time,
  code,
  create_timestamp,
  created_by,
  currency_id,
  description,
  effective_end_date,
  effective_sales_end_date,
  effective_start_date,
  enable_validity_period,
  exclude_from_stopovers,
  fare_update_in_progress,
  id,
  interline_indicator,
  interlineability,
  migration_id,
  min_pax_count,
  pax_category_id,
  segment_name,
  type,
  update_timestamp,
  updated_by,
  version,
  rule_key
  
  
  ) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)];

How to prevent this behaviour in springboot 3 and hibernate 6 and postres 11 as it is causing some attributes

value too long for type character varying

And also note that it is working fine in springboot 2.7 and hibernate 5

Please try to create a reproducer with our test case template and if you are able to reproduce the issue, create a bug ticket in our issue tracker and attach that reproducer.