Package com.sparc.knappsack.components.dao

Source Code of com.sparc.knappsack.components.dao.DomainDaoImpl

package com.sparc.knappsack.components.dao;

import com.mysema.query.jpa.impl.JPAQuery;
import com.sparc.knappsack.components.entities.*;
import com.sparc.knappsack.enums.DomainType;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository("domainDao")
public class DomainDaoImpl extends BaseDao implements DomainDao {

    QDomain domain = QDomain.domain;
    QUserDomain userDomain = QUserDomain.userDomain;
    QRegion region = QRegion.region;
    QUser user = QUser.user;

    public Domain get(Long id) {
//        return getEntityManager().find(Domain.class, id);
        return cacheableQuery().from(domain).where(domain.id.eq(id)).uniqueResult(domain);
    }

    @Override
    public List<Domain> get(Long... ids) {
        JPAQuery query = query().from(domain).where(domain.id.in(ids));
        List<Domain> list = query.list(domain);
        return list;
    }

    @Override
    public Domain getByUUID(String uuid) {
        return query().from(domain).where(domain.uuid.eq(uuid)).uniqueResult(domain);
    }

    @Override
    public Domain getByRegion(long regionId) {
        return query().from(domain).where(domain.regions.contains(subQuery().from(region).where(region.id.eq(regionId)).unique(region))).uniqueResult(domain);
    }

    @Override
    public Domain getByRegion(Region region) {
        return query().from(domain).where(domain.regions.contains(region)).uniqueResult(domain);
    }

    @Override
    public boolean doesDomainContainRegionWithName(long domainId, String regionName) {
        return query().from(region).where(region.name.equalsIgnoreCase(regionName), region.in(subQuery().from(domain).where(domain.id.eq(domainId), domain.regions.contains(region)).list(region))).exists();
    }

    public List<Domain> getAll(User aUser, DomainType... domainTypes) {
        return cacheableQuery().from(domain).join(domain.userDomains, userDomain).where(domain.domainType.in(domainTypes).and(userDomain.user.eq(aUser))).list(domain);
    }
}
TOP

Related Classes of com.sparc.knappsack.components.dao.DomainDaoImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.