Java 执行postgresql架构脚本Spring DatabasePopulator,在位置处开始未终止的美元报价

Java 执行postgresql架构脚本Spring DatabasePopulator,在位置处开始未终止的美元报价,java,spring,postgresql,Java,Spring,Postgresql,在我的spring应用程序中,我创建了许多带有实体类的表,并且运行良好。我使用Spring和Hibernate,数据库是PostgreSQL 然后我需要一些函数,所以我准备了一个包含函数代码的SQL脚本。该脚本在pgAdmin和netbeans数据库服务sql窗口中执行 但是如果我想在hibernate生成所有表之后运行脚本,就不能执行它。 为此,我在ApplicationContext.java中创建了bean @Bean public DataSourceInitializer dataSo

在我的spring应用程序中,我创建了许多带有实体类的表,并且运行良好。我使用Spring和Hibernate,数据库是PostgreSQL

然后我需要一些函数,所以我准备了一个包含函数代码的SQL脚本。该脚本在pgAdmin和netbeans数据库服务sql窗口中执行

但是如果我想在hibernate生成所有表之后运行脚本,就不能执行它。 为此,我在ApplicationContext.java中创建了bean

@Bean
public DataSourceInitializer dataSourceInitializer() {
final DataSourceInitializer initializer = new DataSourceInitializer();
initializer.setDataSource(dataSource());
initializer.setDatabasePopulator(databasePopulator());
return initializer;
}

private DatabasePopulator databasePopulator() {
final ResourceDatabasePopulator populator = new ResourceDatabasePopulator();
populator.addScript(schemaScript);
return populator;
}
我收到的错误是

Caused by: org.postgresql.util.PSQLException: Unterminated dollar quote started at position 122 in SQL CREATE OR REPLACE FUNCTION public.populate_raw_data( source character varying, func character varying) RETURNS integer AS $BODY$ DECLARE cnt integer. Expected terminating $$
到目前为止,我已经读了好几个问题,但没有任何帮助。pom.xml中的postgresql驱动程序是版本42.2.1