Creat a package-info file in the models package and put the following contents in there:
@org.hibernate.annotations.TypeDef(name = "jsonb", typeClass = JsonBinaryType.class)
package com.ourproject.model;
import com.vladmihalcea.hibernate.type.json.JsonBinaryType;I used JsonBinaryType in hibernate-types-52 library.
Then in the entity class, I removed columnDefinition="jsonb" from the @Column and only used @Type(type = "jsonb")
This way, for the product, hibernate would map column to jsonb type.
Then in the test folder inside the same package I added package-info with this contents:
@org.hibernate.annotations.TypeDef(name = "jsonb", typeClass = TextType.class)
package com.ourproject.model;
import org.hibernate.type.TextType;Now when we run maven test hibernate generates varchar(2147483647) column type for the jsonb type and it solved.
Wonderfull! Don't forget to remove the eventual TypeDef declaration at class level (like me) or else you will get the error "No Dialect mapping for JDBC type: 1111"