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
使用JPA执行脚本函数_Jpa_Hsqldb - Fatal编程技术网

使用JPA执行脚本函数

使用JPA执行脚本函数,jpa,hsqldb,Jpa,Hsqldb,我正在使用一个在内存中运行的数据库(HSQL)进行单元测试。但在我的真实数据库中,我定义了一些函数,这些函数可能需要在内存中的数据库中进行测试 有没有一种方法可以使用Java代码在我的数据库中创建SQL函数?您始终可以使用EntityManager执行任何SQL。createNativeQuery: EntityManager em = ... em.createNativeQuery("CREATE FUNCTION ...").executeUpdate(); 您可以在应用程序启动时调用它

我正在使用一个在内存中运行的数据库(HSQL)进行单元测试。但在我的真实数据库中,我定义了一些函数,这些函数可能需要在内存中的数据库中进行测试


有没有一种方法可以使用Java代码在我的数据库中创建SQL函数?

您始终可以使用EntityManager执行任何SQL。createNativeQuery:

EntityManager em = ...
em.createNativeQuery("CREATE FUNCTION ...").executeUpdate();
您可以在应用程序启动时调用它


备注:在Hibernate中,您需要用
\
转义任何
,因为它试图替换SQL中的参数。

您始终可以使用
EntityManager执行任何SQL。createNativeQuery

EntityManager em = ...
em.createNativeQuery("CREATE FUNCTION ...").executeUpdate();
您可以在应用程序启动时调用它


备注:在Hibernate中,您需要用
\
转义任何
,因为它试图替换SQL中的参数。

我认为这不是一个好主意,对于测试,我建议模拟数据库。甚至有一个框架可以让这个设置变得非常简单:@Oceans,谢谢你的回答,我会试试的。但我必须在我的问题中坚持,是否存在这样做的方法,因为在我的测试中,我使用HSQL,在我的应用程序中,我使用PostgreSQL。我也有这样配置的东西。所以我想测试一下我的问题。你能帮我吗?我认为这不是一个好主意,对于测试,我建议模拟数据库。甚至有一个框架可以让这个设置变得非常简单:@Oceans,谢谢你的回答,我会试试的。但我必须在我的问题中坚持,是否存在这样做的方法,因为在我的测试中,我使用HSQL,在我的应用程序中,我使用PostgreSQL。我也有这样配置的东西。所以我想测试一下我的问题。你能帮助我吗?