Я работаю над приложением Spring Boot JPA, которое инициализирует базу данных с помощью функции schema.sql.Тем не менее, я получаю сообщение об ошибке, когда он сталкивается с определением функции:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.boot.autoconfigure.jdbc.DataSourceInitializerInvoker': Invocation of init method failed; nested exception is org.springframework.jdbc.datasource.init.ScriptStatementFailedException: Failed to execute SQL script statement #13 of URL [file:/C:/Users/Kelly%20Marchewa/workspace/Auth/auth/bin/main/schema.sql]: CREATE OR REPLACE FUNCTION admin.add_user(new_username VARCHAR, new_password VARCHAR, role_name VARCHAR) RETURNS int AS $$ DECLARE ret_role_id INTEGER; nested exception is org.postgresql.util.PSQLException: Unterminated dollar quote started at position 120 in SQL CREATE OR REPLACE FUNCTION admin.add_user(new_username VARCHAR, new_password VARCHAR, role_name VARCHAR) RETURNS int AS $$ DECLARE ret_role_id INTEGER. Expected terminating $$
Определение функции:
CREATE OR REPLACE FUNCTION admin.add_user(new_username VARCHAR, new_password VARCHAR, role_name VARCHAR) RETURNS int AS $$
DECLARE
ret_role_id INTEGER;
ret_user_id INTEGER;
BEGIN
ret_role_id = (SELECT id FROM admin.role WHERE role_title = role_name);
INSERT INTO admin.app_user (username, password) VALUES
(new_username, crypt(new_password, gen_salt('bf', 8)));
ret_user_id = (SELECT id FROM admin.app_user WHERE username = new_username);
INSERT into admin.role(user_id, role_id) VALUES (ret_user_id, ret_role_id);
RETURN ret_user_id;
END;
$$ LANGUAGE plpgsql;
Я могу запустить выполнить этот сценарий просто из CLI 'psql'клиент.Что мне нужно изменить, чтобы оно работало с приложением Spring Boot JPA / драйвером JDBC?
Спасибо.