public class LinkItem
extends java.lang.Object
implements java.io.Serializable
The Link information class.
Used for the connection between vector dataset and external table. external table is the DBMS table of another dataset(the tabular dataset has no spatial geometry information), the vector dataset and external table could belong to different datasources, but currently only SQL server and Oracle datasource type is supported. Spatial data and attribute data should satisfy the link condition when using LinkItem, that is there must be a link field between spatial dataset and external attribute table.
There are two ways of table connections, one is join, the other is link. The dependence settings of join are realized by class JoinItem, and the dependence settings of link are realized by LinkItem. . JoinItem only supports the left join and inner join but not fully join and right join. LinkItem only support the left join. Moreover, the two tables for join should belong to one datasource, but for link could belong to different datasources.
Note: 1. The constraints of using LinkItem are: spatial data and attribute data must have associated conditions, that is, there is an association between the main spatial data set and the external attribute table; 2. When creating a thematic map using an external association table, the associated field must set the table name. For example, if the associated field is the SmID of the BaseMap_R dataset, write the BaseMap_R.SMID.
The following will use an instance to explain the difference between 'join' and 'link'. Suppose there are two tables which are TableA and TableB. We will query in TableA by joining or linking TableB.
1.Join
Set the 'join' settings for TableA and TableB through JoinItem object. When querying, the system will query in TableA and TableB separately according to the query condition and then compose the result content of TableA and TableB which satisfies the conditions in a new table in the memory. When you need you can get the content from the memory.
2.Link
Set the link information to link TableB to TableA through class LinkItem. TableA and TableB are connected by the foreign key(ForeignKey property of class LinkItem) of primary table(TableA) and primary key(PrimaryKey of class LinkItem) of side table(TableB). The system will query both TableA and TableB according to the filter and query condition in the link information, the query result of TableA and TableB will be saved in independently in two memory result tables, When users need to get the query result, SuperMap will union the two results and return to the users' request. So when performing the link query, the return field in query parameter must have the foreign key of link condition, unless it can not get the link field value of side table by the foreign key, and it will return null. On the application layer, join and link operation are very similar.
Modifier and Type | Field and Description |
---|---|
DatasourceConnectionInfo |
datasourceConnectionInfo
${services_components_commontypes_LinkItem_attribute_DatasourceConnectionInfo_Title}
|
java.lang.String[] |
foreignKeys
${services_components_commontypes_LinkItem_attribute_foreignKeys_Title}
|
java.lang.String |
foreignTable
About the name of linked external attribute table, currently only SuperMap managed table is supported, which is the DBMS table corresponded with the other vector dataset.
|
java.lang.String[] |
linkFields
The reserving external attribute table field.
|
java.lang.String |
linkFilter
The join query condition with external attribute table.
|
java.lang.String |
name
${services_components_commontypes_LinkItem_attribute_name_Title}
|
java.lang.String[] |
primaryKeys
The primary key of external attribute table.
|
Constructor and Description |
---|
LinkItem()
${services_components_commontypes_LinkItem_constructorByDefault_Title}
|
LinkItem(LinkItem linkItem)
${services_components_commontypes_LinkItem_constructorByLinkItem_Title}
|
public DatasourceConnectionInfo datasourceConnectionInfo
${services_components_commontypes_LinkItem_attribute_DatasourceConnectionInfo_Title}
${services_components_commontypes_LinkItem_attribute_DatasourceConnectionInfo_Description}
public java.lang.String[] foreignKeys
${services_components_commontypes_LinkItem_attribute_foreignKeys_Title}
${services_components_commontypes_LinkItem_attribute_foreignKeys_Description}
public java.lang.String foreignTable
About the name of linked external attribute table, currently only SuperMap managed table is supported, which is the DBMS table corresponded with the other vector dataset.
public java.lang.String[] linkFields
The reserving external attribute table field.
It will not return to any attribute information of external attribute table if field is not set or the set field does not exist in the external table. A nonexistent field name should be set as the external table field alias if the reserving external table field name is the same with a primary table field name.
public java.lang.String linkFilter
The join query condition with external attribute table.
public java.lang.String name
${services_components_commontypes_LinkItem_attribute_name_Title}
${services_components_commontypes_LinkItem_attribute_name_Description}
public java.lang.String[] primaryKeys
The primary key of external attribute table.
public LinkItem()
${services_components_commontypes_LinkItem_constructorByDefault_Title}
${services_components_commontypes_LinkItem_constructorByDefault_Description}
public LinkItem(LinkItem linkItem)
${services_components_commontypes_LinkItem_constructorByLinkItem_Title}
${services_components_commontypes_LinkItem_constructorByLinkItem_Description}
linkItem
- ${services_components_commontypes_LinkItem_constructorByLinkItem_param_linkItem}${services_components_commontypes_LinkItem_constructorByLinkItem_exception_IllegalArgumentException}
public int hashCode()
Get the hash code of linked information object.
hashCode
in class java.lang.Object
Object.hashCode()
public boolean equals(java.lang.Object obj)
Checks whether the specified object is equal to the current LinkItem
object.
equals
in class java.lang.Object
obj
- Object that compares with the current LinkItem
object.