/** * Gets the JPA column name. * * @param field * the field * @param entityMetadata * the entity metadata * @param metaModel * the meta model * @return the JPA column name */ public static String getJPAColumnName(String field, EntityMetadata entityMetadata, MetamodelImpl metaModel) { if (field.indexOf('.') > 0) { return ((AbstractAttribute) metaModel.entity(entityMetadata.getEntityClazz()).getAttribute( field.substring(field.indexOf('.') + 1, field.indexOf(')') > 0 ? field.indexOf(')') : field.length()))).getJPAColumnName(); } else { return ((AbstractAttribute) entityMetadata.getIdAttribute()).getJPAColumnName(); } }
/** * Custom implementation to offer map of embeddables available for given * entityType. * * @param clazz * entity class * @return map of holding {@link EmbeddableType} as value and attribute name * as key. */ public Map<String, EmbeddableType> getEmbeddables(Class clazz) { Map<String, EmbeddableType> embeddableAttibutes = new HashMap<String, EmbeddableType>(); if (entityTypes != null) { EntityType entity = entityTypes.get(clazz); Iterator<Attribute> iter = entity.getAttributes().iterator(); while (iter.hasNext()) { Attribute attribute = iter.next(); if (isEmbeddable(((AbstractAttribute) attribute).getBindableJavaType())) { embeddableAttibutes.put(attribute.getName(), embeddable(((AbstractAttribute) attribute).getBindableJavaType())); } } } return embeddableAttibutes; }
Attribute embeddableAttribute = metaModel.getEntityAttribute(m.getEntityClazz(), propertyName); EmbeddableType embeddableType = metaModel.embeddable(((AbstractAttribute) embeddableAttribute).getBindableJavaType()); orderColumnName = orderColumnName.substring(orderColumnName.indexOf(".") + 1); AbstractAttribute attribute = (AbstractAttribute) embeddableType.getAttribute(orderColumnName); Attribute attribute = metaModel.getEntityAttribute(m.getEntityClazz(), orderColumnName); orderByColumnName = ((AbstractAttribute) attribute).getJPAColumnName();
/** * @param entityClassName * @param em * @return */ public static AbstractManagedType getEntityManagedType(String entityClassName, EntityManager em) { MetamodelImpl metamodel = (MetamodelImpl) em.getEntityManagerFactory().getMetamodel(); Class<?> entityClass = metamodel.getEntityClass(entityClassName); EntityMetadata entityMetadata = metamodel.getEntityMetadata(entityClass); AbstractManagedType managedType = (AbstractManagedType) metamodel.entity(entityMetadata.getEntityClazz()); return managedType; }
/** * @param entityClassName * @param em * @return */ public static EntityMetadata getEntityMetaData(String entityClassName, EntityManager em) { MetamodelImpl metamodel = (MetamodelImpl) em.getEntityManagerFactory().getMetamodel(); Class<?> entityClass = metamodel.getEntityClass(entityClassName); return metamodel.getEntityMetadata(entityClass); }
/** * Returns true in case of, composite Id and if cql3 opted and not a embedded entity. * * @param metadata * the metadata * @return true, if is cql3 enabled */ public boolean isCql3Enabled(EntityMetadata metadata) { if (metadata != null) { MetamodelImpl metaModel = (MetamodelImpl) kunderaMetadata.getApplicationMetadata().getMetamodel(metadata.getPersistenceUnit()); if (metaModel.isEmbeddable(metadata.getIdAttribute().getBindableJavaType())) { return true; } // added for embeddables support on cql3 AbstractManagedType managedType = (AbstractManagedType) metaModel.entity(metadata.getEntityClazz()); if (managedType.hasEmbeddableAttribute()) { return getCqlVersion().equalsIgnoreCase(CassandraConstants.CQL_VERSION_3_0); } if (getCqlVersion().equalsIgnoreCase(CassandraConstants.CQL_VERSION_3_0) && metadata.getType().equals(Type.SUPER_COLUMN_FAMILY)) { log.warn( "Super Columns not supported by cql, Any operation on supercolumn family will be executed using thrift, returning false."); return false; } return getCqlVersion().equalsIgnoreCase(CassandraConstants.CQL_VERSION_3_0); } return getCqlVersion().equalsIgnoreCase(CassandraConstants.CQL_VERSION_3_0); }
String parentId, Class<?> clazz, boolean isUpdate) boolean isEmbeddedId = metaModel.isEmbeddable(metadata.getIdAttribute().getBindableJavaType()); if (!metadata.isIndexable()) Map<String, EmbeddableType> embeddables = metaModel.getEmbeddables(metadata.getEntityClazz()); EntityType entityType = metaModel.entity(metadata.getEntityClazz()); metaModel.isEmbeddable(embeddedObject.getClass()) ? embeddedObject : entity, embeddableAttribute, metaModel); if (isUpdate)
Map<String, Object> indexCollection) Map<String, EmbeddableType> embeddables = metaModel.getEmbeddables(clazz); EntityType entityType = metaModel.entity(clazz);
private void addPrimaryKeyColumnsFromEmbeddable(List<ColumnSchema> columns, EmbeddableType embeddable, Field[] fields, MetamodelImpl metaModel) { for (Field f : fields) { if (!ReflectUtils.isTransientOrStatic(f)) { if (f.getType().isAnnotationPresent(Embeddable.class)) { // nested addPrimaryKeyColumnsFromEmbeddable(columns, (EmbeddableType) metaModel.embeddable(f.getType()), f .getType().getDeclaredFields(), metaModel); } else { Attribute attribute = embeddable.getAttribute(f.getName()); columns.add(new ColumnSchema.ColumnSchemaBuilder( ((AbstractAttribute) attribute).getJPAColumnName(), KuduDBValidationClassMapper .getValidTypeForClass(f.getType())).key(true).build()); } } } }
for (Object clause : kunderaQuery.getFilterClauseQueue()) { FilterClause filterClause = (FilterClause) clause; Field f = (Field) metaModel.entity(metadata.getEntityClazz()) .getAttribute(metadata.getFieldName(filterClause.getProperty())).getJavaMember(); String jpaColumnName = getColumnName(metadata, filterClause.getProperty()); if (metaModel.isEmbeddable(metadata.getIdAttribute().getBindableJavaType())) { Field[] fields = metadata.getIdAttribute().getBindableJavaType().getDeclaredFields(); EmbeddableType compoundKey = metaModel.embeddable(metadata.getIdAttribute().getBindableJavaType()); for (Field field : fields) { if (field != null && !Modifier.isStatic(field.getModifiers())
/** * Gets the key as string. * * @param id * the id * @param metadata * the metadata * @param metaModel * the meta model * @return the key as string */ private String getKeyAsString(Object id, EntityMetadata metadata, MetamodelImpl metaModel) { if (metaModel.isEmbeddable(((AbstractAttribute) metadata.getIdAttribute()).getBindableJavaType())) { return KunderaCoreUtils.prepareCompositeKey(metadata, id); } return id.toString(); }
} else if (keyObj != null && metaModel.isEmbeddable(m.getIdAttribute().getBindableJavaType()) && StringUtils.contains(fieldName, '.')) { useToken); } else { EntityType entity = metaModel.entity(m.getEntityClazz()); Metamodel metamodel = KunderaMetadataManager.getMetamodel(kunderaMetadata, m.getPersistenceUnit()); Attribute attribute = ((MetamodelImpl) metamodel).getEntityAttribute(m.getEntityClazz(), m.getFieldName(fieldName));
entityMetadata.getPersistenceUnit()); EmbeddableType embeddableType = metaModel.embeddable(EmbeddableEntity.class); EntityType<SingularEntityEmbeddable> entityType = metaModel.entity(SingularEntityEmbeddable.class);
&& !((Field) field.getJavaMember()).isAnnotationPresent(ManyToMany.class) && !((Field) field.getJavaMember()).isAnnotationPresent(Transient.class) && !((MetamodelImpl) metaModel).isEmbeddable(((AbstractAttribute) field).getBindableJavaType())) Map<String, EmbeddableType> embeddedColumns = ((MetamodelImpl) metaModel).getEmbeddables(entityMetadata .getEntityClazz()); for (EmbeddableType embeddedCol : embeddedColumns.values())
EntityType entityType = metaModel.entity(metadata.getEntityClazz()); EntityMetadata associatedMetadata = metaModel.getEntityMetadata(relation.getTargetEntity()); EntityType associatedEntityType = metaModel.entity(associatedMetadata.getEntityClazz());
puMetadata.getPersistenceUnitName()); Iterator iter = metaModel.getEmbeddables().iterator(); while (iter.hasNext())
List<String> columnsNameToBeIndexed = new ArrayList<String>(); for (com.impetus.kundera.index.Index indexedColumn : indexes.columns()) { Attribute attrib = metaModel.getEntityAttribute(entity.getClass(), indexedColumn.name()); columnsNameToBeIndexed.add(((AbstractAttribute) attrib).getJPAColumnName()); Object obj = PropertyAccessorHelper.getObject(entity, property); if (obj != null) { EntityMetadata relMetaData = metaModel.getEntityMetadata(obj.getClass()); Object id = PropertyAccessorHelper.getId(obj, relMetaData); if (id != null) {
/** * Gets the entity metadata. * * @param persistenceUnit * the persistence unit * @param entityClass * the entity class * @return the entity metadata */ public static EntityMetadata getEntityMetadata(final KunderaMetadata kunderaMetadata, String persistenceUnit, Class entityClass) { return getMetamodel(kunderaMetadata, persistenceUnit).getEntityMetadata(entityClass); }
/** * Filter jpa parameter info. * * @param type * the type * @param name * the name * @param fieldName * the field name */ private void filterJPAParameterInfo(Type type, String name, String fieldName) { String attributeName = getAttributeName(fieldName); Attribute entityAttribute = ((MetamodelImpl) kunderaMetadata.getApplicationMetadata().getMetamodel(persistenceUnit)) .getEntityAttribute(entityClass, attributeName); Class fieldType = entityAttribute.getJavaType(); if (type.equals(Type.INDEXED)) { typedParameter.addJPAParameter(new JPAParameter(null, Integer.valueOf(name), fieldType)); } else { typedParameter.addJPAParameter(new JPAParameter(name, null, fieldType)); } }
EntityType entityType = metamodel.entity(entityMetadata.getEntityClazz()); Set<Attribute> attributes = entityType.getSingularAttributes(); if (!attribute.isAssociation() && !metamodel.isEmbeddable(fieldJavaType))