blob: 1a7074daffc70c0f2cc0fdd5f6d9786f108cc2bb [file] [log] [blame]
package eu.mulk.mulkcms2.common.hibernate;
import static org.hibernate.query.sqm.produce.function.FunctionParameterType.ANY;
import static org.hibernate.query.sqm.produce.function.FunctionParameterType.STRING;
import static org.hibernate.sql.ast.SqlAstNodeRenderingMode.DEFAULT;
import static org.hibernate.type.StandardBasicTypes.BOOLEAN;
import org.hibernate.boot.model.FunctionContributions;
import org.hibernate.boot.model.FunctionContributor;
public final class HibernateFunctionContributor implements FunctionContributor {
@Override
public void contributeFunctions(FunctionContributions functionContributions) {
var typeConfiguration = functionContributions.getTypeConfiguration();
var typeRegistry = typeConfiguration.getBasicTypeRegistry();
var functionRegistry = functionContributions.getFunctionRegistry();
functionRegistry
.patternDescriptorBuilder(
"post_matches_websearch", "(?1 @@ websearch_to_tsquery(language_regconfig(?2), ?3))")
.setInvariantType(typeRegistry.resolve(BOOLEAN))
.setExactArgumentCount(3)
.setArgumentListSignature("(STRING searchTerms, STRING language, STRING queryText)")
.setArgumentRenderingMode(DEFAULT)
.setParameterTypes(ANY, STRING, STRING)
.register();
}
}