我需要在通过JPA EntityManager访问的数据库中创建一个新表。JPA NativeQueries是否支持“选择”或“更新”以外的查询?还是在JPA上下文中还有另一种先进的方法来执行复杂的SQL查询?
jpa“本机查询”仅可用于DML语句(数据处理语言)。要发布任何DDL(例如创建表),您需要从EntityManager获取基础连接。
如何从EM中提取连接将取决于您所使用的JPA实现,但肯定包括调用EntityManager.getDelegate()。
或者,(我认为这是一种更好的方法),如果要对尝试创建表的对象使用spring,请注入DataSource或JDBCTemplate,并使用该类创建表。