use of javax.persistence.criteria.MapJoin in project hibernate-orm by hibernate.
the class AbstractFromImpl method joinMap.
@Override
@SuppressWarnings({ "unchecked" })
public <X, K, V> MapJoin<X, K, V> joinMap(String attributeName, JoinType jt) {
final Attribute<X, ?> attribute = (Attribute<X, ?>) locateAttribute(attributeName);
if (!attribute.isCollection()) {
throw new IllegalArgumentException("Requested attribute was not a map");
}
final PluralAttribute pluralAttribute = (PluralAttribute) attribute;
if (!PluralAttribute.CollectionType.MAP.equals(pluralAttribute.getCollectionType())) {
throw new IllegalArgumentException("Requested attribute was not a map");
}
return (MapJoin<X, K, V>) join((MapAttribute) attribute, jt);
}
use of javax.persistence.criteria.MapJoin in project hibernate-orm by hibernate.
the class MapJoinTestWithEmbeddable method testSelectingKeyOfMapJoin.
@Test
@TestForIssue(jiraKey = "HHH-10455")
public void testSelectingKeyOfMapJoin() {
doInJPA(this::entityManagerFactory, entityManager -> {
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery<Node> query = cb.createQuery(Node.class);
Root<Batch> root = query.from(Batch.class);
MapJoin nodes = (MapJoin) root.join("batchNodeMetadata");
query.select(nodes.key());
query.where(cb.equal(root.get("id"), 1));
entityManager.createQuery(query).getResultList();
});
}
use of javax.persistence.criteria.MapJoin in project hibernate-orm by hibernate.
the class MapJoinTestWithEmbeddable method testSelectingValueOfMapJoin.
@Test
@TestForIssue(jiraKey = "HHH-10229")
public void testSelectingValueOfMapJoin() {
doInJPA(this::entityManagerFactory, entityManager -> {
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery<Node> query = cb.createQuery(Node.class);
Root<Batch> root = query.from(Batch.class);
MapJoin nodes = (MapJoin) root.join("batchNodeMetadata");
query.select(nodes);
query.where(cb.equal(root.get("id"), 1));
entityManager.createQuery(query).getResultList();
});
}
Aggregations