Java tutorial
/* * 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); } }