我需要在通过 JPA EntityManager 访问的数据库中创建一个新表。 JPA NativeQueries 是否支持“选择”或“更新”以外的查询?或者是否有另一种最先进的方法来在 JPA 上下文中执行复杂的 SQL 查询?
最佳答案
jpa“ native 查询”只能用于 DML 语句(数据操作语言)。要发出任何 DDL,例如创建表,您需要从 EntityManager 获取底层连接。
如何从 EM 中提取连接取决于您使用的 JPA 实现,但肯定会包括调用 EntityManager.getDelegate()。
或者(我认为这是一种更好的方法),如果您将 spring 用于尝试创建表的对象,则注入(inject) DataSource 或 JDBCTemplate,并使用该类创建表。
关于mysql - 通过 JPA EntityManager 执行创建表查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6141794/