我想使用Spring JPA在我的数据库上执行drop
表查询(数据库-Postgres
)
下面是我的代码:
public void executeDropTable(String tableName){
String query = "DROP TABLE IF EXISTS :tableName";
entityManager.createQuery(query)
.setParameter("tableName", tableName)
.executeUpdate();
}
字符串
但在IntelliJ中,在查询字符串上显示错误为'DROP' unexpected
x1c 0d1x的数据
2条答案
按热度按时间p5fdfcr11#
你应该得到这样的东西:
异常错误:org.hibernate.hql.internal.ast.QuerySyntaxException:意外令牌:第1行第1列附近的DROP [DROP TABLE webinar_speakers]
DROP
语句不是有效的HQL。使用原生查询,不要忘记
@Transactional
:字符串
DROP
被突出显示的事实很可能来自于IntelliJ的Spring Data插件,它“知道”DROP
在此上下文中无效。如果您使用createNativeQuery(...)
DROP
将不再突出显示。qij5mzcb2#
EntityManager.createQuery不能用于DML语句。使用EntityManager.createNativeQuery。