Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试通过EntityManager使用多个CREATE VIEW语句执行脚本时出现SQL语法错误_Sql_Jpa_Mariadb_Nativequery_Hibernate Native Query - Fatal编程技术网

尝试通过EntityManager使用多个CREATE VIEW语句执行脚本时出现SQL语法错误

尝试通过EntityManager使用多个CREATE VIEW语句执行脚本时出现SQL语法错误,sql,jpa,mariadb,nativequery,hibernate-native-query,Sql,Jpa,Mariadb,Nativequery,Hibernate Native Query,我想在Quarkus应用程序启动时创建一组SQL视图,我写道 @Inject EntityManager em; public void exec(... sql) { logger.info("EXECUTING " ...); sql = "BEGIN\n" + sql + "\nEND"; Query q = em.createNativeQuery(sql); q.executeUpdate()

我想在Quarkus应用程序启动时创建一组SQL视图,我写道

@Inject
EntityManager em;

public void exec(... sql) {
    logger.info("EXECUTING " ...);
    sql = "BEGIN\n" + sql + "\nEND";
    Query q = em.createNativeQuery(sql);
    q.executeUpdate();
}
我的SQL文件如下所示:

CREATE OR REPLACE VIEW My_view_ex AS
SELECT cc.*, If(cc.beautifulName IS NULL, cc.name, cc.beautifulName) canonName FROM My_table cc;

CREATE OR REPLACE VIEW MyView2 AS
...
不幸的是,它抛出了一个异常,即

java.sql.SQLException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'CREATE OR REPLACE VIEW My_view_ex AS
SELECT cc.*, If(cc.beautifulName IS NU...' at line 2
如果我将
sql
varible的内容复制粘贴到数据库客户端并执行它,那么它就工作了,也就是说,实际上没有语法错误。可能它不喜欢多个查询或行尾之类的东西


还有什么建议?

您想要
合并(cc.beautifulName,cc.name)
?@jarlh谢谢您的提示,但这并不能解决问题:)