Noa*_*oam 5 java mysql jpa criteria-api jpa-2.0
我正在使用 jpa 2.0 并且我有以下实体:
@Entity
public class Folder{
@ElementCollection
@CollectionTable(name="folder_files")
private Set<String> files;
// .....
}
Run Code Online (Sandbox Code Playgroud)
给定文件名,我想删除 files == theGivenFileName 的所有条目。在 sql 中它会是这样的:
Delete from folder_files where files = XXX
Run Code Online (Sandbox Code Playgroud)
有没有办法使用标准 API 执行此查询?如果没有,有没有办法使用 jpql 执行此查询?
更新:
我认为我的问题不够清楚:因为 jpql 使用实体(而不是表),所以我不能只执行上面写的 sql 加上因为我正在使用@ElementCollection我不知道如何解决这个 variablr 甚至处理它。我想从所有实体中删除该集合中包含给定值的所有条目(在我的情况下,是文件集)。是否可以使用 jpql 或(甚至更好)标准 API?
您可以使用类似的查询,只是语法稍有改变。
query = em.createQuery("SELECT i FROM Item i WHERE UPPER(i.name) LIKE :keyword ");
query.setParameter("keyword", "%" + keyword.toUpperCase() + "%");
Run Code Online (Sandbox Code Playgroud)
您可以在以下链接中阅读更多内容,
https://forums.oracle.com/forums/thread.jspa?threadID=423742
更新:
@Noam你可以做到:就像 Criteria API 中一样
List cats = sess.createCriteria(Cat.class)
.add( Restrictions.like("name", "Fritz%") )
.add( Restrictions.between("weight", minWeight, maxWeight) )
.list();
Run Code Online (Sandbox Code Playgroud)
请通过以下链接阅读更多相关内容:
http://ctpconsulting.github.com/query/1.0.0.Alpha3/criteria.html
http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/querycriteria.html
| 归档时间: |
|
| 查看次数: |
2822 次 |
| 最近记录: |