CriteriaQuery<Pet> cq = cb.createQuery(Pet.class); Metamodel m = em.getMetamodel(); EntityType<Pet> Pet_ = m.entity(Pet.class); Root<Pet> pet = cq.from(Pet.class); Join<Pet, Owner> owner = pet.join(Pet_.owners);
@Test public void testOrm21() { PersistenceUnitInfoImpl pui = new PersistenceUnitInfoImpl( "orm2-test", "2.1" ) .addMappingFileName( "org/hibernate/test/jpa/xml/versions/valid-orm-2_1.xml" ); HibernatePersistenceProvider hp = new HibernatePersistenceProvider(); EntityManagerFactory emf = hp.createContainerEntityManagerFactory( pui, Collections.EMPTY_MAP ); try { emf.getMetamodel().entity( Lighter.class ); // exception if not entity } finally { emf.close(); } }
@Test public void testOrm20() { PersistenceUnitInfoImpl pui = new PersistenceUnitInfoImpl( "orm2-test", "2.0" ) .addMappingFileName( "org/hibernate/test/jpa/xml/versions/valid-orm-2_0.xml" ); HibernatePersistenceProvider hp = new HibernatePersistenceProvider(); EntityManagerFactory emf = hp.createContainerEntityManagerFactory( pui, Collections.EMPTY_MAP ); try { emf.getMetamodel().entity( Lighter.class ); // exception if not entity } finally { emf.close(); } }
@Test public void testOrm1() { PersistenceUnitInfoImpl pui = new PersistenceUnitInfoImpl( "orm1-test", "1.0" ) .addMappingFileName( "org/hibernate/test/jpa/xml/versions/valid-orm-1_0.xml" ); HibernatePersistenceProvider hp = new HibernatePersistenceProvider(); EntityManagerFactory emf = hp.createContainerEntityManagerFactory( pui, Collections.EMPTY_MAP ); try { emf.getMetamodel().entity( Lighter1.class ); // exception if not entity } finally { emf.close(); } }
@Test public void testOrm22() { PersistenceUnitInfoImpl pui = new PersistenceUnitInfoImpl( "orm2-test", "2.2") .addMappingFileName( "org/hibernate/test/jpa/xml/versions/valid-orm-2_2.xml" ); HibernatePersistenceProvider hp = new HibernatePersistenceProvider(); EntityManagerFactory emf = hp.createContainerEntityManagerFactory( pui, Collections.EMPTY_MAP ); try { emf.getMetamodel().entity( Lighter.class ); // exception if not entity } finally { emf.close(); } }
@Test @TestForIssue(jiraKey = "HHH-9403") public void testWildcardGenericAttributeCanBeResolved() { doInJPA( this::entityManagerFactory, entityManager -> { EntityType<AbstractOwner> entity = entityManager.getMetamodel().entity( AbstractOwner.class ); assertNotNull( entity ); } ); }
@Override public <U> String entityNameFromClass(Class<U> entity) { if (!useHibernateFullEntityNames) { EntityType<U> entityType = metamodel.entity(entity); if (entityType == null) return null; return entityType.getName(); } else return entity.getName(); }
@Override public <X> Root<X> from(Class<X> paramClass) { EntityType<X> entityType = this.criteriaBuilder.getMetaModel().entity(paramClass); return fromEntityType(entityType); }
public static String getEntityName(EntityManager em, Class<?> entityClass) { return em.getMetamodel().entity(entityClass).getName(); } }
entity = getEntityObjects(clazz, entityMetadata, metaModel.entity(clazz), hits).get(0); String jpaField = ((AbstractAttribute) metaModel.entity(clazz).getAttribute(field)).getJPAColumnName(); entity = query.getSelectStatement().hasGroupByClause() ? hits.getAt(0).sourceAsMap().get(jpaField) : hits .getAt(0).getFields().get(jpaField).getValue();
for (UpdateClause c : kunderaQuery.getUpdateClauseQueue()) String columName = getColumnName(m, metaModel.entity(m.getEntityClazz()), c.getProperty()); boolean isSpecialFunction = false; for (int i = 0; i < FUNCTION_KEYWORDS.length; i++)
/** * Checks whether an entity with given metadata contains a collection field * * @param m * @return */ public static boolean containsBasicElementCollectionField(final EntityMetadata m, final KunderaMetadata kunderaMetadata) { Metamodel metaModel = kunderaMetadata.getApplicationMetadata().getMetamodel(m.getPersistenceUnit()); EntityType entityType = metaModel.entity(m.getEntityClazz()); Iterator<Attribute> iter = entityType.getAttributes().iterator(); while (iter.hasNext()) { Attribute attr = iter.next(); if (attr.isCollection() && !attr.isAssociation() && isBasicElementCollectionField((Field) attr.getJavaMember())) { return true; } } return false; }
private static void getEmbeddableType(EntityMetadata m, Map<String, Field> columnNameToFieldMap, Map<String, Field> superColumnNameToFieldMap, final KunderaMetadata kunderaMetadata) { Metamodel metaModel = kunderaMetadata.getApplicationMetadata().getMetamodel(m.getPersistenceUnit()); EntityType entityType = metaModel.entity(m.getEntityClazz()); Set attributes = entityType.getAttributes(); Iterator<Attribute> iter = attributes.iterator(); while (iter.hasNext()) { Attribute attribute = iter.next(); if (((MetamodelImpl) metaModel).isEmbeddable(((AbstractAttribute) attribute).getBindableJavaType())) { superColumnNameToFieldMap.put(((AbstractAttribute) attribute).getJPAColumnName(), (Field) attribute.getJavaMember()); if (columnNameToFieldMap != null) { getAttributeOfEmbedddable(columnNameToFieldMap, metaModel, attribute); } } else { if (columnNameToFieldMap != null) { columnNameToFieldMap.put(((AbstractAttribute) attribute).getJPAColumnName(), (Field) attribute.getJavaMember()); } } } }
EntityType entity = metaModel.entity(m.getEntityClazz());
/** * Get the aggregation object. * * @param metadata * @return */ private BasicDBObject createAggregation(EntityMetadata metadata) { if (kunderaQuery.getSelectStatement() != null) { Metamodel metaModel = kunderaMetadata.getApplicationMetadata().getMetamodel(metadata.getPersistenceUnit()); EntityType entityType = metaModel.entity(metadata.getEntityClazz()); AbstractManagedType managedType = (AbstractManagedType) metaModel.entity(metadata.getEntityClazz()); boolean hasLob = managedType.hasLobAttribute(); BasicDBObject aggregation = new BasicDBObject(); SelectClause selectClause = (SelectClause) kunderaQuery.getSelectStatement().getSelectClause(); Expression expression = selectClause.getSelectExpression(); buildAggregation(aggregation, expression, metadata, entityType, hasLob); if (aggregation.size() == 0) { return null; } if (!aggregation.containsField("_id")) { aggregation.put("_id", null); } return aggregation; } return null; }
/** * Inits the filter. */ private void initFilter() { EntityMetadata metadata = KunderaMetadataManager.getEntityMetadata(kunderaMetadata, entityClass); Metamodel metaModel = kunderaMetadata.getApplicationMetadata().getMetamodel(getPersistenceUnit()); EntityType entityType = metaModel.entity(entityClass); if (null == filter) { List<String> clauses = new ArrayList<String>(); addDiscriminatorClause(clauses, entityType); return; } WhereClause whereClause = KunderaQueryUtils.getWhereClause(getJpqlExpression()); KunderaQueryUtils.traverse(whereClause.getConditionalExpression(), metadata, kunderaMetadata, this, false); for (Object filterClause : filtersQueue) { if (!(filterClause instanceof String)) { onTypedParameter(((FilterClause) filterClause)); } } addDiscriminatorClause(null, entityType); }
.entity(entityMetadata.getEntityClazz());