com.jubination.model.dao.DataAnalyticsDAOImpl.java Source code

Java tutorial

Introduction

Here is the source code for com.jubination.model.dao.DataAnalyticsDAOImpl.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package com.jubination.model.dao;

import com.jubination.model.pojo.admin.Admin;
import com.jubination.model.pojo.crm.DataAnalytics;
import com.jubination.model.pojo.admin.MailMessage;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.CriteriaSpecification;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.authentication.encoding.Md5PasswordEncoder;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

/**
 *
 * @author Welcome
 */
@Repository
public class DataAnalyticsDAOImpl<T> implements java.io.Serializable {
    private Session session = null;
    @Autowired
    private SessionFactory sessionFactory;

    public DataAnalyticsDAOImpl() {
    }

    @Transactional(propagation = Propagation.REQUIRED)
    public Object buildEntity(Object entity) {
        DataAnalytics da = (DataAnalytics) entity;

        session = getSessionFactory().getCurrentSession();
        session.save(da);
        da = (DataAnalytics) session.get(DataAnalytics.class, da.getId());

        return (T) da;

    }

    @Transactional(propagation = Propagation.REQUIRED, readOnly = true)
    public Object readPropertyByDate(Object paramId) {
        List<DataAnalytics> list = null;

        session = getSessionFactory().getCurrentSession();
        list = session.createCriteria(DataAnalytics.class)
                .add(Restrictions.like("date", (String) paramId, MatchMode.START)).list();

        return (T) list;

    }

    @Transactional(propagation = Propagation.REQUIRED, readOnly = true)
    public Object readPropertyByRecency() {
        List<DataAnalytics> list = new ArrayList<>();

        session = getSessionFactory().getCurrentSession();
        List<String> tempList = session.createCriteria(DataAnalytics.class)
                .setProjection(Projections.projectionList().add(Projections.max("requestedTime"))
                //.add(Projections.groupProperty("type"))
                ).list();

        if (tempList.size() > 0) {
            list = session.createCriteria(DataAnalytics.class)
                    .add(Restrictions.like("requestedTime", tempList.get(0))).list();
        }

        return (T) list;

    }

    public SessionFactory getSessionFactory() {
        return sessionFactory;
    }

    public void setSessionFactory(SessionFactory sessionFactory) {
        this.sessionFactory = sessionFactory;
    }

}