/*
 * This file is generated by jOOQ.
 */
package jj.tech.paolu.repository.jooq.tables.daos;


import java.util.List;
import java.util.Optional;

import jj.tech.paolu.repository.jooq.tables.SysRoleUrl;
import jj.tech.paolu.repository.jooq.tables.records.SysRoleUrlRecord;

import org.jooq.Configuration;
import org.jooq.impl.DAOImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;


/**
 * This class is generated by jOOQ.
 */
@SuppressWarnings({ "all", "unchecked", "rawtypes", "this-escape" })
@Repository
public class SysRoleUrlDao extends DAOImpl<SysRoleUrlRecord, jj.tech.paolu.repository.jooq.tables.pojos.SysRoleUrl, String> {

    /**
     * Create a new SysRoleUrlDao without any configuration
     */
    public SysRoleUrlDao() {
        super(SysRoleUrl.SYS_ROLE_URL, jj.tech.paolu.repository.jooq.tables.pojos.SysRoleUrl.class);
    }

    /**
     * Create a new SysRoleUrlDao with an attached configuration
     */
    @Autowired
    public SysRoleUrlDao(Configuration configuration) {
        super(SysRoleUrl.SYS_ROLE_URL, jj.tech.paolu.repository.jooq.tables.pojos.SysRoleUrl.class, configuration);
    }

    @Override
    public String getId(jj.tech.paolu.repository.jooq.tables.pojos.SysRoleUrl object) {
        return object.getId();
    }

    /**
     * Fetch records that have <code>id BETWEEN lowerInclusive AND
     * upperInclusive</code>
     */
    public List<jj.tech.paolu.repository.jooq.tables.pojos.SysRoleUrl> fetchRangeOfId(String lowerInclusive, String upperInclusive) {
        return fetchRange(SysRoleUrl.SYS_ROLE_URL.ID, lowerInclusive, upperInclusive);
    }

    /**
     * Fetch records that have <code>id IN (values)</code>
     */
    public List<jj.tech.paolu.repository.jooq.tables.pojos.SysRoleUrl> fetchById(String... values) {
        return fetch(SysRoleUrl.SYS_ROLE_URL.ID, values);
    }

    /**
     * Fetch a unique record that has <code>id = value</code>
     */
    public jj.tech.paolu.repository.jooq.tables.pojos.SysRoleUrl fetchOneById(String value) {
        return fetchOne(SysRoleUrl.SYS_ROLE_URL.ID, value);
    }

    /**
     * Fetch a unique record that has <code>id = value</code>
     */
    public Optional<jj.tech.paolu.repository.jooq.tables.pojos.SysRoleUrl> fetchOptionalById(String value) {
        return fetchOptional(SysRoleUrl.SYS_ROLE_URL.ID, value);
    }

    /**
     * Fetch records that have <code>roleid BETWEEN lowerInclusive AND
     * upperInclusive</code>
     */
    public List<jj.tech.paolu.repository.jooq.tables.pojos.SysRoleUrl> fetchRangeOfRoleid(String lowerInclusive, String upperInclusive) {
        return fetchRange(SysRoleUrl.SYS_ROLE_URL.ROLEID, lowerInclusive, upperInclusive);
    }

    /**
     * Fetch records that have <code>roleid IN (values)</code>
     */
    public List<jj.tech.paolu.repository.jooq.tables.pojos.SysRoleUrl> fetchByRoleid(String... values) {
        return fetch(SysRoleUrl.SYS_ROLE_URL.ROLEID, values);
    }

    /**
     * Fetch records that have <code>url BETWEEN lowerInclusive AND
     * upperInclusive</code>
     */
    public List<jj.tech.paolu.repository.jooq.tables.pojos.SysRoleUrl> fetchRangeOfUrl(String lowerInclusive, String upperInclusive) {
        return fetchRange(SysRoleUrl.SYS_ROLE_URL.URL, lowerInclusive, upperInclusive);
    }

    /**
     * Fetch records that have <code>url IN (values)</code>
     */
    public List<jj.tech.paolu.repository.jooq.tables.pojos.SysRoleUrl> fetchByUrl(String... values) {
        return fetch(SysRoleUrl.SYS_ROLE_URL.URL, values);
    }

    /**
     * Fetch records that have <code>urltypes BETWEEN lowerInclusive AND
     * upperInclusive</code>
     */
    public List<jj.tech.paolu.repository.jooq.tables.pojos.SysRoleUrl> fetchRangeOfUrltypes(Integer lowerInclusive, Integer upperInclusive) {
        return fetchRange(SysRoleUrl.SYS_ROLE_URL.URLTYPES, lowerInclusive, upperInclusive);
    }

    /**
     * Fetch records that have <code>urltypes IN (values)</code>
     */
    public List<jj.tech.paolu.repository.jooq.tables.pojos.SysRoleUrl> fetchByUrltypes(Integer... values) {
        return fetch(SysRoleUrl.SYS_ROLE_URL.URLTYPES, values);
    }
}
