java - 使用 JPA 2.0 标准查询 map

标签 java jpa jpa-2.0 criteria criteria-api

我正在寻找与此 JPQL 查询等效的 JPA 2 标准:

select e from Entity e join e.myMap m where KEY(m) = 'myKey' and VALUE(m) = ‘myValue’ 

谢谢!

最佳答案

未测试,但我想这应该没问题:

CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Entity> criteria = cb.createQuery(Entity.class);
Root<Entity> entity = criteria.from(Entity.class);
MapJoin<Entity, String, String> mapJoin = entity.joinMap(Entity_.myMap);
criteria.where(cb.and(cb.equal(mapJoin.key(), "myKey"),
                      cb.equal(mapJoin.value(), "myValue")));

关于java - 使用 JPA 2.0 标准查询 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8490930/

相关文章:

java - 如何使用 JPA 2.0 的 CriteriaBuilder 为多对一关系构建动态查询

java - 如何更新方法?

java - 使用继承的 Struts2 约定插件结果

java - 复合主键,使用 REST 识别该资源的最佳方法是什么?

java - 调用 exception.fillInStacktrace 有用吗?

hibernate - 尽管 JPA Converter 可用,但 org.hibernate.MappingException

java - JPA 标准 API : Aggregating on Multiple Columns with IF Condition

java - jpa Embeddables 与实体的双向关系

java - 使用 JPA LocalContainerEntityManagerFactoryBean 进行 Hibernate 配置

java - @OrderColumn、@OneToMany & 用于集合的空索引列