首页 > 解决方案 > 我在 JPA 中需要这个 SQL 语句

问题描述

是否可以通过特定 ID 在数据库表中通过 JPA 删除多行?

例如

Delete from PERSON_LANGUAGE where PERSON_ID = 125;

提前致谢!

下面是我目前尝试使用的没有任何运气的东西!

public void deletePersonLanguageById(PersonLanguage personLanguage){
    PersonLanguage personLanguage1 = em.find(PersonLanguage.class, personLanguage.getPersonId());
    em.remove(personLanguage1);
}

我希望它删除我的数据库表中的所有内容ID = 1

标签: javasqljpa

解决方案


您可以使用本机查询直接针对您的数据库执行 SQL

Query q = em.createNativeQuery("DELETE FROM person_language WHERE person_id = 1");
q.executeUpdate();

或 JPQL 查询:

Query q = em.creteQuery("DELETE FROM Person p WHERE p.personId = 1");
q.executeUpdate();

推荐阅读