Package org.apache.ignite.cache
Class QueryEntity
- java.lang.Object
-
- org.apache.ignite.cache.QueryEntity
-
- All Implemented Interfaces:
Serializable
public class QueryEntity extends Object implements Serializable
Query entity is a description ofcache
entry (composed of key and value) in a way of how it must be indexed and can be queried.- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description QueryEntity()
Creates an empty query entity.QueryEntity(Class<?> keyCls, Class<?> valCls)
Creates a query entity with the given key and value types.QueryEntity(String keyType, String valType)
Creates a query entity with the given key and value types.QueryEntity(QueryEntity other)
Copy constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description QueryEntity
addQueryField(String fullName, String type, String alias)
Utility method for building query entities programmatically.boolean
equals(Object o)
String
findKeyType()
Attempts to get key type from fields in case it was not set directly.String
findValueType()
Attempts to get value type from fields in case it was not set directly.Map<String,String>
getAliases()
Gets aliases map.Map<String,Object>
getDefaultFieldValues()
Gets fields default values.LinkedHashMap<String,String>
getFields()
Gets query fields for this query pair.Map<String,Integer>
getFieldsPrecision()
Map<String,Integer>
getFieldsScale()
@NotNull Collection<QueryIndex>
getIndexes()
Gets a collection of index entities.String
getKeyFieldName()
Gets key field name.Set<String>
getKeyFields()
Gets query fields for this query pair that belongs to the key.String
getKeyType()
Gets key type for this query pair.@Nullable Set<String>
getNotNullFields()
Gets names of fields that must be checked for null.String
getTableName()
Gets table name for this query entity.String
getValueFieldName()
Get value field name.String
getValueType()
Gets value type for this query pair.int
hashCode()
@NotNull QueryEntityPatch
makePatch(QueryEntity target)
Make query entity patch.QueryEntity
setAliases(Map<String,String> aliases)
Sets mapping from full property name in dot notation to an alias that will be used as SQL column name.QueryEntity
setDefaultFieldValues(Map<String,Object> defaultFieldValues)
Sets fields default values.QueryEntity
setFields(LinkedHashMap<String,String> fields)
Sets query fields for this query pair.QueryEntity
setFieldsPrecision(Map<String,Integer> fieldsPrecision)
Sets fieldsPrecision map for a fields.QueryEntity
setFieldsScale(Map<String,Integer> fieldsScale)
Sets fieldsScale map for a fields.QueryEntity
setIndexes(Collection<QueryIndex> idxs)
Sets a collection of index entities.QueryEntity
setKeyFieldName(String keyFieldName)
Sets key field name.QueryEntity
setKeyFields(Set<String> keyFields)
Gets query fields for this query pair that belongs to the key.QueryEntity
setKeyType(String keyType)
Sets key type for this query pair.QueryEntity
setNotNullFields(@Nullable Set<String> notNullFields)
Sets names of fields that must checked for null.QueryEntity
setTableName(String tableName)
Sets table name for this query entity.QueryEntity
setValueFieldName(String valueFieldName)
Sets value field name.QueryEntity
setValueType(String valType)
Sets value type for this query pair.String
toString()
-
-
-
Constructor Detail
-
QueryEntity
public QueryEntity()
Creates an empty query entity.
-
QueryEntity
public QueryEntity(QueryEntity other)
Copy constructor.- Parameters:
other
- Other entity.
-
QueryEntity
public QueryEntity(String keyType, String valType)
Creates a query entity with the given key and value types.- Parameters:
keyType
- Key type.valType
- Value type.
-
-
Method Detail
-
makePatch
@NotNull public @NotNull QueryEntityPatch makePatch(QueryEntity target)
Make query entity patch. This patch can only add properties to entity and can't remove them. Other words, the patch will contain only add operations(e.g. add column, create index) and not remove ones.- Parameters:
target
- Query entity to which this entity should be expanded.- Returns:
- Patch which contains operations for expanding this entity.
-
getKeyType
public String getKeyType()
Gets key type for this query pair.- Returns:
- Key type.
-
findKeyType
public String findKeyType()
Attempts to get key type from fields in case it was not set directly.- Returns:
- Key type.
-
setKeyType
public QueryEntity setKeyType(String keyType)
Sets key type for this query pair.- Parameters:
keyType
- Key type.- Returns:
this
for chaining.
-
getValueType
public String getValueType()
Gets value type for this query pair.- Returns:
- Value type.
-
findValueType
public String findValueType()
Attempts to get value type from fields in case it was not set directly.- Returns:
- Value type.
-
setValueType
public QueryEntity setValueType(String valType)
Sets value type for this query pair.- Parameters:
valType
- Value type.- Returns:
this
for chaining.
-
getFields
public LinkedHashMap<String,String> getFields()
Gets query fields for this query pair. The order of fields is important as it defines the order of columns returned by the 'select *' queries.- Returns:
- Field-to-type map.
-
setFields
public QueryEntity setFields(LinkedHashMap<String,String> fields)
Sets query fields for this query pair. The order if fields is important as it defines the order of columns returned by the 'select *' queries.- Parameters:
fields
- Field-to-type map.- Returns:
this
for chaining.
-
getKeyFields
public Set<String> getKeyFields()
Gets query fields for this query pair that belongs to the key. We need this for the cases when no key-value classes are present on cluster nodes, and we need to build/modify keys and values during SQL DML operations. Thus, setting this parameter in XML is not mandatory and should be based on particular use case.- Returns:
- Set of names of key fields.
-
setKeyFields
public QueryEntity setKeyFields(Set<String> keyFields)
Gets query fields for this query pair that belongs to the key. We need this for the cases when no key-value classes are present on cluster nodes, and we need to build/modify keys and values during SQL DML operations. Thus, setting this parameter in XML is not mandatory and should be based on particular use case.- Parameters:
keyFields
- Set of names of key fields.- Returns:
this
for chaining.
-
getKeyFieldName
public String getKeyFieldName()
Gets key field name.- Returns:
- Key name.
-
setKeyFieldName
public QueryEntity setKeyFieldName(String keyFieldName)
Sets key field name.- Parameters:
keyFieldName
- Key name.- Returns:
this
for chaining.
-
getValueFieldName
public String getValueFieldName()
Get value field name.- Returns:
- Value name.
-
setValueFieldName
public QueryEntity setValueFieldName(String valueFieldName)
Sets value field name.- Parameters:
valueFieldName
- value name.- Returns:
this
for chaining.
-
getIndexes
@NotNull public @NotNull Collection<QueryIndex> getIndexes()
Gets a collection of index entities.- Returns:
- Collection of index entities.
-
setAliases
public QueryEntity setAliases(Map<String,String> aliases)
Sets mapping from full property name in dot notation to an alias that will be used as SQL column name. Example: {"parent.name" -> "parentName"}.- Parameters:
aliases
- Aliases map.- Returns:
this
for chaining.
-
setIndexes
public QueryEntity setIndexes(Collection<QueryIndex> idxs)
Sets a collection of index entities.- Parameters:
idxs
- Collection of index entities.- Returns:
this
for chaining.
-
getTableName
public String getTableName()
Gets table name for this query entity.- Returns:
- table name
-
setTableName
public QueryEntity setTableName(String tableName)
Sets table name for this query entity.- Parameters:
tableName
- table name- Returns:
this
for chaining.
-
getNotNullFields
@Nullable public @Nullable Set<String> getNotNullFields()
Gets names of fields that must be checked for null.- Returns:
- Set of names of fields that must have non-null values.
-
setNotNullFields
public QueryEntity setNotNullFields(@Nullable @Nullable Set<String> notNullFields)
Sets names of fields that must checked for null.- Parameters:
notNullFields
- Set of names of fields that must have non-null values.- Returns:
this
for chaining.
-
getFieldsPrecision
public Map<String,Integer> getFieldsPrecision()
- Returns:
- Precision map for a fields.
-
setFieldsPrecision
public QueryEntity setFieldsPrecision(Map<String,Integer> fieldsPrecision)
Sets fieldsPrecision map for a fields.- Parameters:
fieldsPrecision
- Precision map for a fields.- Returns:
This
for chaining.
-
setFieldsScale
public QueryEntity setFieldsScale(Map<String,Integer> fieldsScale)
Sets fieldsScale map for a fields.- Parameters:
fieldsScale
- Scale map for a fields.- Returns:
This
for chaining.
-
getDefaultFieldValues
public Map<String,Object> getDefaultFieldValues()
Gets fields default values.- Returns:
- Field's name to default value map.
-
setDefaultFieldValues
public QueryEntity setDefaultFieldValues(Map<String,Object> defaultFieldValues)
Sets fields default values.- Parameters:
defaultFieldValues
- Field's name to default value map.- Returns:
this
for chaining.
-
addQueryField
public QueryEntity addQueryField(String fullName, String type, String alias)
Utility method for building query entities programmatically.- Parameters:
fullName
- Full name of the field.type
- Type of the field.alias
- Field alias.- Returns:
this
for chaining.
-
-