@SqlUpdate("CREATE TABLE IF NOT EXISTS resource_groups_global_properties (\n" + " name VARCHAR(128) NOT NULL PRIMARY KEY,\n" + " value VARCHAR(512) NULL,\n" + " CHECK (name in ('cpu_quota_period'))\n" + ")") void createResourceGroupsGlobalPropertiesTable();
@SqlQuery("SELECT value FROM resource_groups_global_properties WHERE name = 'cpu_quota_period'") @UseRowMapper(ResourceGroupGlobalProperties.Mapper.class) List<ResourceGroupGlobalProperties> getResourceGroupGlobalProperties();
@SqlBatch("insert into something(name) values (:name)") @GetGeneratedKeys({"id", "created_on"}) @UseRowMapper(IdCreateTimeMapper.class) List<IdCreateTime> insertBatch(String... name); }
@SqlUpdate("insert into something(name) values (:name)") @GetGeneratedKeys({"id", "created_on"}) @UseRowMapper(IdCreateTimeMapper.class) IdCreateTime insert(String name);
@SqlBatch("INSERT INTO users (name) VALUES(?)") @GetGeneratedKeys List<User> createUsers(String... names); }
@SqlQuery("SELECT resource_group_id, name, soft_memory_limit, max_queued, soft_concurrency_limit, " + " hard_concurrency_limit, scheduling_policy, scheduling_weight, jmx_export, soft_cpu_limit, " + " hard_cpu_limit, parent\n" + "FROM resource_groups\n" + "WHERE environment = :environment\n") @UseRowMapper(ResourceGroupSpecBuilder.Mapper.class) List<ResourceGroupSpecBuilder> getResourceGroups(@Bind("environment") String environment);
@SqlUpdate("CREATE TABLE IF NOT EXISTS selectors (\n" + " resource_group_id BIGINT NOT NULL,\n" + " priority BIGINT NOT NULL,\n" + " user_regex VARCHAR(512),\n" + " source_regex VARCHAR(512),\n" + " query_type VARCHAR(512),\n" + " client_tags VARCHAR(512),\n" + " selector_resource_estimate VARCHAR(1024),\n" + " FOREIGN KEY (resource_group_id) REFERENCES resource_groups (resource_group_id)\n" + ")") void createSelectorsTable();
@SqlQuery("SELECT S.resource_group_id, S.priority, S.user_regex, S.source_regex, S.query_type, S.client_tags, S.selector_resource_estimate\n" + "FROM selectors S\n" + "JOIN resource_groups R ON (S.resource_group_id = R.resource_group_id)\n" + "WHERE R.environment = :environment\n" + "ORDER by priority DESC") @UseRowMapper(SelectorRecord.Mapper.class) List<SelectorRecord> getSelectors(@Bind("environment") String environment);
@SqlUpdate("CREATE TABLE IF NOT EXISTS exact_match_source_selectors(\n" + " environment VARCHAR(128),\n" + " source VARCHAR(512) NOT NULL,\n" + " query_type VARCHAR(512),\n" + " update_time DATETIME NOT NULL,\n" + " resource_group_id VARCHAR(256) NOT NULL,\n" + " PRIMARY KEY (environment, source, query_type),\n" + " UNIQUE (source, environment, query_type, resource_group_id)\n" + ")") void createExactMatchSelectorsTable();
@SqlQuery("all-something") @UseRowMapper(SomethingMapper.class) List<Something> findAll(); }
@SqlUpdate("CREATE TABLE IF NOT EXISTS resource_groups (\n" + " resource_group_id BIGINT NOT NULL AUTO_INCREMENT,\n" + " name VARCHAR(250) NOT NULL,\n" + " soft_memory_limit VARCHAR(128) NOT NULL,\n" + " max_queued INT NOT NULL,\n" + " soft_concurrency_limit INT NULL,\n" + " hard_concurrency_limit INT NOT NULL,\n" + " scheduling_policy VARCHAR(128) NULL,\n" + " scheduling_weight INT NULL,\n" + " jmx_export BOOLEAN NULL,\n" + " soft_cpu_limit VARCHAR(128) NULL,\n" + " hard_cpu_limit VARCHAR(128) NULL,\n" + " parent BIGINT NULL,\n" + " environment VARCHAR(128) NULL,\n" + " PRIMARY KEY (resource_group_id),\n" + " FOREIGN KEY (parent) REFERENCES resource_groups (resource_group_id)\n" + ")") void createResourceGroupsTable();
@SqlQuery("select * from something where id=:id") @UseRowMapper(SomethingMapper.class) Something get(long id); }
@SqlUpdate("DROP TABLE selectors") void dropSelectorsTable(); }
@SqlQuery("select id, name from something order by id desc") @UseRowMapper(SomethingMapper.class) void forEach(Consumer<Something> consumer);
@SqlUpdate("DELETE FROM resource_groups WHERE resource_group_id = :resource_group_id") void deleteResourceGroup(@Bind("resource_group_id") long resourceGroupId);
@SqlUpdate("INSERT INTO resource_groups_global_properties\n" + "(name, value) VALUES (:name, :value)") void insertResourceGroupsGlobalProperties( @Bind("name") String name, @Bind("value") String value);
@SqlUpdate("INSERT INTO exact_match_source_selectors (environment, source, query_type, update_time, resource_group_id)\n" + "VALUES (:environment, :source, :query_type, now(), :resourceGroupId)\n") void insertExactMatchSelector( @Bind("environment") String environment, @Bind("source") String source, @Bind("query_type") String queryType, @Bind("resourceGroupId") String resourceGroupId);
@SqlUpdate("DELETE FROM selectors WHERE resource_group_id = :resource_group_id\n" + " AND ((user_regex IS NULL AND :user_regex IS NULL) OR user_regex = :user_regex)\n" + " AND ((source_regex IS NULL AND :source_regex IS NULL) OR source_regex = :source_regex)\n" + " AND ((client_tags IS NULL AND :client_tags IS NULL) OR client_tags = :client_tags)") void deleteSelector( @Bind("resource_group_id") long resourceGroupId, @Bind("user_regex") String userRegex, @Bind("source_regex") String sourceRegex, @Bind("client_tags") String clientTags);
@SqlUpdate("INSERT INTO selectors\n" + "(resource_group_id, priority, user_regex, source_regex, query_type, client_tags, selector_resource_estimate)\n" + "VALUES (:resource_group_id, :priority, :user_regex, :source_regex, :query_type, :client_tags, :selector_resource_estimate)") void insertSelector( @Bind("resource_group_id") long resourceGroupId, @Bind("priority") long priority, @Bind("user_regex") String userRegex, @Bind("source_regex") String sourceRegex, @Bind("query_type") String queryType, @Bind("client_tags") String clientTags, @Bind("selector_resource_estimate") String selectorResourceEstimate);