jpa批量删除数据_java-如何在jpa中从元素集合中批量删除

我正在使用jpa 2.0,并且具有以下实体:

@Entity

public class Folder{

@ElementCollection

@CollectionTable(name="folder_files")

private Set files;

// .....

}

给定一个文件名,我想删除文件== theGivenFileName的所有条目.在SQL中将是这样的:

Delete from folder_files where files = XXX

有没有一种使用criteria-api执行此查询的方法?

如果没有,是否可以使用jpql执行此查询?

更新:

我认为我的问题还不够清楚:

由于jpql使用实体(而不是表),因此我不能仅仅执行上面编写的sql,而且由于我使用的是@ElementCollection,所以我不知道如何解决这种可变性甚至无法处理它.我想从所有实体中删除具有给定值的该集合中的所有条目(在我的情况下为文件集).是否可以使用jpql或(甚至更好)criteria-api?

解决方法:

您可以使用like查询,只是语法稍有变化.

query = em.createQuery("SELECT i FROM Item i WHERE UPPER(i.name) LIKE :keyword ");

query.setParameter("keyword", "%" + keyword.toUpperCase() + "%");

您可以通过以下链接了解更多信息,

更新:

@Noam您可以做到:就像在Criteria API中一样

List cats = sess.createCriteria(Cat.class)

.add( Restrictions.like("name", "Fritz%") )

.add( Restrictions.between("weight", minWeight, maxWeight) )

.list();

请通过以下链接阅读更多内容:

标签:criteria-api,jpa,jpa-2-0,java,mysql

来源: https://codeday.me/bug/20191201/2080238.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值