[英]JPA, Can not delete record
我正在尝试使用JPA删除多行(如果有的话),并且我得到nullpointer异常。 参数和实体管理器不为空。 可能导致此异常的任何想法?
PS该课程注释@Transactional
@Override
public void removeAccount(String id) {
try {
int deleteRecords = entityManager.createQuery("DELETE from bankaccount b where b.accountNumber = ?1", BankAccount.class)
.setParameter(1, accountNumber)
.executeUpdate();
} catch (Exception ex) {
ex.getMessage();
}
}
你不必放第二个参数,我也把类名放在查询中。 BankAccount
和String id
从不在方法中使用。
int deleteRecords = entityManager.createQuery("DELETE from BankAccount b where b.accountNumber = ?1")
.setParameter(1, accountNumber)
.executeUpdate();
要删除实体,您应首先查询它,然后将其传递给remove方法。
例如,如果accountNumber
是BankAccounts
主键:
BankAccount account = entityManager.find(BankAccount.class, accountNumber);
entityManager.remove(account);
更新
如果您不能使用primary key
并且需要删除多个条目,则可以使用您提供的代码,但不要进行类型化查询:
int numberOfRecords = entityManager
.createQuery("DELETE from bankaccount b where b.accountNumber = ?1")
.setParameter(1, accountNumber)
.executeUpdate();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.