/** * On family type. * * @param entityMetadata * the entity metadata * @param clazz * the clazz * @param f * the f */ private void onFamilyType(EntityMetadata entityMetadata, final Class clazz, Field f) { if (entityMetadata.getType() == null || !entityMetadata.getType().equals(Type.SUPER_COLUMN_FAMILY)) { if ((f.isAnnotationPresent(Embedded.class) && f.getType().getAnnotation(Embeddable.class) != null)) { entityMetadata.setType(Type.SUPER_COLUMN_FAMILY); } else if (f.isAnnotationPresent(ElementCollection.class) && !MetadataUtils.isBasicElementCollectionField(f)) { entityMetadata.setType(Type.SUPER_COLUMN_FAMILY); } else { entityMetadata.setType(Type.COLUMN_FAMILY); } } }
/** * 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); }
if (metadata.getType().equals(EntityMetadata.Type.SUPER_COLUMN_FAMILY))
PropertyAccessorHelper.setId(entity, m, (byte[]) thriftColumnValue); if (isCql3Enabled && !m.getType().equals(Type.SUPER_COLUMN_FAMILY) && !m.isCounterColumnType()) .getEntityMetadata(((AbstractAttribute) attribute).getBindableJavaType()); Object value; if (isCql3Enabled && !m.getType().equals(Type.SUPER_COLUMN_FAMILY))
if (m.getType().equals(Type.SUPER_COLUMN_FAMILY))
/** * Returns true in case of, composite Id and if cql3 opted and not a * embedded entity. * * @param metadata * @param metaModel * @return */ public boolean isCql3Enabled(EntityMetadata metadata) { if (metadata != null) { MetamodelImpl metaModel = (MetamodelImpl) KunderaMetadata.INSTANCE.getApplicationMetadata().getMetamodel( metadata.getPersistenceUnit()); if (metaModel.isEmbeddable(metadata.getIdAttribute().getBindableJavaType())) { return true; } else 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); }
private void setId(EntityMetadata m, Object entity, Object columnValue, boolean isCql3Enabled) { if (isCql3Enabled && !m.getType().equals(Type.SUPER_COLUMN_FAMILY)) { setFieldValueViaCQL(entity, columnValue, m.getIdAttribute()); } else { setFieldValue(entity, columnValue, m.getIdAttribute()); // columnValue = // PropertyAccessorHelper.getObject(m.getIdAttribute().getJavaType(), // (byte[]) columnValue); // PropertyAccessorHelper.setId(entity, m, columnValue); } }
((AbstractAttribute) attribute).getBindableJavaType()); Object value; if (isCql3Enabled && !m.getType().equals(Type.SUPER_COLUMN_FAMILY))
if (!m.getType().equals(Type.SUPER_COLUMN_FAMILY))
if (m.getType().equals(Type.SUPER_COLUMN_FAMILY))
/** * Sets the id. * * @param m * the m * @param entity * the entity * @param columnValue * the column value * @param isCql3Enabled * the is cql3 enabled */ private void setId(EntityMetadata m, Object entity, Object columnValue, boolean isCql3Enabled) { if (isCql3Enabled && !m.getType().equals(Type.SUPER_COLUMN_FAMILY)) { setFieldValueViaCQL(entity, columnValue, m.getIdAttribute()); } else { setFieldValue(entity, columnValue, m.getIdAttribute()); } }