daos.AdresDao.java Source code

Java tutorial

Introduction

Here is the source code for daos.AdresDao.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 daos;

import POJO.Adres;
import genericDao.GenericDaoImpl;
import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.SQLQuery;
import org.hibernate.Session;

import org.springframework.beans.factory.annotation.Autowire;
import org.springframework.beans.factory.annotation.Configurable;
import static org.hibernate.criterion.Example.create;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

@Repository("AdresDao")
@Configurable(autowire = Autowire.BY_TYPE)
@Scope("prototype")
public class AdresDao extends GenericDaoImpl<Adres, Integer> {
    private static final Logger LOG = LoggerFactory.getLogger(AdresDao.class);

    @Transactional
    public List<Adres> readByExample(Adres adres) {
        Criteria criteria = createEntityCriteria(getCurrentSession());
        LOG.info("Started finding adres by example");
        @SuppressWarnings("unchecked")
        List<Adres> results = (List<Adres>) criteria.add(create(adres)).list();
        return results;
    }

    @Override
    public List<Adres> readAll() {
        String query = "select * from adres";
        Session session = getCurrentSession();
        SQLQuery q = session.createSQLQuery(query);
        q.addEntity(Adres.class);
        List<Adres> results = (List<Adres>) q.list();
        return results;
    }

    @Override
    public List<Adres> readByKlantId(Integer id) {
        String query = "select a.* from klant_has_adres ka inner join adres a on a.idAdres = ka.Adres_idAdres where ka.Klant_idKlant = "
                + id;
        Session session = getCurrentSession();
        SQLQuery q = session.createSQLQuery(query);
        q.addEntity(Adres.class);
        List<Adres> results = (List<Adres>) q.list();
        return results;
    }

    @Override
    public void deleteEntity(Adres adres) {
        String deleteKlantHasAdresQuery = "delete from klant_has_adres where Adres_idAdres = " + adres.getIdAdres();
        Session session = getCurrentSession();
        SQLQuery q = session.createSQLQuery(deleteKlantHasAdresQuery);
        q.addEntity(Adres.class);
        q.executeUpdate();
        super.deleteEntity(adres);
    }
}