一尘不染

通过JPA EntityManager执行创建表查询

hibernate

我需要在通过JPA EntityManager访问的数据库中创建一个新表。JPA
NativeQueries是否支持“选择”或“更新”以外的查询?还是在JPA上下文中还有另一种先进的方法来执行复杂的SQL查询?


阅读 1037

收藏
2020-06-20

共1个答案

一尘不染

jpa“本机查询”仅可用于DML语句(数据处理语言)。要发布任何DDL(例如创建表),您需要从EntityManager获取基础连接。

如何从EM中提取连接将取决于您所使用的JPA实现,但肯定包括调用EntityManager.getDelegate()。

或者,(我认为这是一种更好的方法),如果要对尝试创建表的对象使用spring,请注入DataSource或JDBCTemplate,并使用该类创建表。

2020-06-20