From 38f3a16a31e81b6b8c54b449bb8c3e4abc0a0522 Mon Sep 17 00:00:00 2001 From: Sergey Matvienko Date: Thu, 18 Apr 2024 20:29:34 +0200 Subject: [PATCH] ThingsboardPostgreSQLDialect fixed with type cast to text. SqlExceptionHelper - ERROR: operator does not exist: character varying ~~* bytea. Hint: No operator matches the given name and argument types. You might need to add explicit type casts. --- .../thingsboard/server/dao/ThingsboardPostgreSQLDialect.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dao/src/main/java/org/thingsboard/server/dao/ThingsboardPostgreSQLDialect.java b/dao/src/main/java/org/thingsboard/server/dao/ThingsboardPostgreSQLDialect.java index 8acb13b5bb..5da1c32616 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/ThingsboardPostgreSQLDialect.java +++ b/dao/src/main/java/org/thingsboard/server/dao/ThingsboardPostgreSQLDialect.java @@ -15,23 +15,26 @@ */ package org.thingsboard.server.dao; +import lombok.extern.slf4j.Slf4j; import org.hibernate.boot.model.FunctionContributions; import org.hibernate.dialect.PostgreSQLDialect; import org.hibernate.query.sqm.function.SqmFunctionRegistry; import org.hibernate.type.BasicTypeRegistry; import org.hibernate.type.StandardBasicTypes; +@Slf4j public class ThingsboardPostgreSQLDialect extends PostgreSQLDialect { @Override public void initializeFunctionRegistry(FunctionContributions functionContributions) { + log.trace("initializeFunctionRegistry [{}]", functionContributions); super.initializeFunctionRegistry(functionContributions); BasicTypeRegistry basicTypeRegistry = functionContributions.getTypeConfiguration().getBasicTypeRegistry(); SqmFunctionRegistry functionRegistry = functionContributions.getFunctionRegistry(); functionRegistry.registerPattern( "ilike", - "(?1 ILIKE ?2)", + "(?1::text ILIKE ?2::text)", basicTypeRegistry.resolve(StandardBasicTypes.BOOLEAN)); } }