
info.archinnov.achilles.annotations.ClusteringColumn Maven / Gradle / Ivy
/*
* Copyright (C) 2012-2016 DuyHai DOAN
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package info.archinnov.achilles.annotations;
import java.lang.annotation.*;
/**
* Indicates that this component is a clustering column key. Please note that the ordering starts at 1
*
* {@literal @}Table
* public class Entity {
* // Partition key component
* {@literal @}PartitionKey
* private Long userId;
* // Clustering column 1. Date in YYYYMMDD
* {@literal @}ClusteringColumn(1)
* private int date;
* // Clustering column 2. type
* {@literal @}ClusteringColumn(2)
* private String type;
* }
*
*
*
*
* @see @ClusteringColumn
*/
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD})
@Documented
public @interface ClusteringColumn {
/**
* The order of this clustering column, starting at 1
*
* @return
*/
int value() default 1;
/**
* Define the clustering order on a clustering column. Default value is true
*
* {@literal @}Table
* public class Entity {
* // Partition key
* {@literal @}PartitionKey
* private Long userId;
* // Ascending clustering column. "asc" can be omitted because defaults to "true"
* {@literal @}ClusteringColumn(value = 1, asc = true)
* private UUID time;
* // Descending clustering column.
* {@literal @}ClusteringColumn(value = 2, asc = false)
* private int type;
* }
*
*/
boolean asc() default true;
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy