Я пробовал использовать в Spring ряд функций MySQL с HQL, которые не поддерживает спящий режим, например GROUP_CONCAT. Hibernate выдаст следующую ошибку.
Caused by: java.lang.IllegalStateException: No data type for node: org.hibernate.hql.internal.ast.tree.MethodNode
+-[METHOD_CALL] MethodNode: '('
| +-[METHOD_NAME] IdentNode: 'GROUP_CONCAT' {originalText=GROUP_CONCAT}
| \-[EXPR_LIST] SqlNode: 'exprList'
| \-[DOT] DotNode: 'propertyre1_.id' {propertyName=id,dereferenceType=PRIMITIVE,getPropertyPath=id,path=property.id,tableAlias=propertyre1_,className=com.mypackage.MyClas,classAlias=property}
| +-[ALIAS_REF] IdentNode: 'propertyre1_.id' {alias=property, className=com.mypackage.MyClass, tableAlias=propertyre1_}
| \-[IDENT] IdentNode: 'id' {originalText=id}
Однако я обнаружил, что спящий режим можно настроить для приема пользовательских функций, добавив в конфигурацию спящего режима с помощью ...
hibernateConfiguration.addSqlFunction("group_concat", new StandardSQLFunction("group_concat", new StringType()));
Я изо всех сил пытаюсь найти способ получить доступ к конфигурации гибернации с помощью Spring Boot & Spring 5+. Я нашел следующий сообщение stackoverflow, однако, похоже, это для более старой версии spring, поскольку LocalSessionFactoryBean больше не имеет метода с именем postProcessConfiguration или любого другого очевидного способа манипулировать конфигурацией.
Есть ли способ манипулировать конфигурацией гибернации до того, как фабрика сеансов будет построена в Spring 5+?




Ответ на это именно то, что вам нужно:
https://stackoverflow.com/a/42486291/6709262
Чтобы использовать его с Spring Boot, просто включите его в приложении. (Yml | properties):
spring.jpa.properties.hibernate.dialect = full.qualified.package.DialectName
да. Кажется, я зашел в тупик с подходом конфигурации, но этот подход действительно работает.
stackoverflow.com/questions/2736100/… помогает?