База данных, к которой я подключаюсь, не поддерживает функцию «LOCATE»; вместо этого он реализует «POSITION».
Похоже, это верно для нескольких баз данных: postgres, sqlserver и Snowflake.
Я установил диалект используя свойства, например:
Код: Выделить всё
spring.data.jdbc.dialect=postgresql
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
Код: Выделить всё
functionFactory.locate_positionSubstring();Код: Выделить всё
functionFactory.locate_charindex();Однако, когда я включаю ведение журнала (
Код: Выделить всё
spring.jpa.show-sql=trueКод: Выделить всё
SELECT COUNT(E0.id) S0 FROM MY_TABLE E0 WHERE (LOCATE(?, E0.value) ?)Я ожидаю, что эти диалекты ( или если я реализую свою собственную) должен ли спящий режим не вызывать базу данных с помощью функции LOCATE, а вместо этого использовать charindex или позицию? Почему он все еще отправляет запросы LOCATE (которые затем терпят неудачу)?
Подробнее здесь: https://stackoverflow.com/questions/787 ... -i-specify