com.bitalino.server.dao.BITalinoReadingDao.java Source code

Java tutorial

Introduction

Here is the source code for com.bitalino.server.dao.BITalinoReadingDao.java

Source

/**
 * 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 com.bitalino.server.dao;

import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;

import org.joda.time.DateTime;

import com.bitalino.server.model.BITalinoReading;
import com.bitalino.server.model.BITalinoReading_;

/**
 * Data access object for {@link BITalinoReading} entity.
 */
@Stateless
public class BITalinoReadingDao extends AbstractDao<BITalinoReading> {

    public BITalinoReadingDao() {
        super(BITalinoReading.class);
    }

    /**
     * Finds all {@link BITalinoReading} related to a time interval.
     * 
     * @param since
     * 
     * @return a list of all {@link BITalinoReading} related to a time interval.
     */
    public List<BITalinoReading> find_all_readings_since(final long since) {
        CriteriaBuilder cb = getEntityManager().getCriteriaBuilder();
        CriteriaQuery<BITalinoReading> cq = cb.createQuery(BITalinoReading.class);
        Root<BITalinoReading> reading = cq.from(BITalinoReading.class);

        Predicate interval = cb.between(reading.get(BITalinoReading_.timestamp), since, DateTime.now().getMillis());
        cq.where(interval);

        return getEntityManager().createQuery(cq).getResultList();
    }

}