Java tutorial
//////////////////////////////////////////////////////////////////////// // // Copyright (c) 2009-2015 Denim Group, Ltd. // // The contents of this file are subject to the Mozilla Public 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.mozilla.org/MPL/ // // Software distributed under the License is distributed on an "AS IS" // basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the // License for the specific language governing rights and limitations // under the License. // // The Original Code is ThreadFix. // // The Initial Developer of the Original Code is Denim Group, Ltd. // Portions created by Denim Group, Ltd. are Copyright (C) // Denim Group, Ltd. All Rights Reserved. // // Contributor(s): Denim Group, Ltd. // //////////////////////////////////////////////////////////////////////// package com.denimgroup.threadfix.data.dao.hibernate; import com.denimgroup.threadfix.data.dao.AbstractNamedObjectDao; import com.denimgroup.threadfix.data.dao.GenericVulnerabilityDao; import com.denimgroup.threadfix.data.entities.GenericVulnerability; import org.hibernate.SessionFactory; import org.hibernate.StatelessSession; import org.hibernate.Transaction; import org.hibernate.criterion.Order; import org.hibernate.criterion.Restrictions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; import org.springframework.transaction.annotation.Transactional; import java.util.List; /** * Hibernate GenericVulnerability DAO implementation. Most basic methods are * implemented in the AbstractGenericDao * * @author mcollins, dwolf */ @Repository @Transactional public class HibernateGenericVulnerabilityDao extends AbstractNamedObjectDao<GenericVulnerability> implements GenericVulnerabilityDao { @Autowired public HibernateGenericVulnerabilityDao(SessionFactory sessionFactory) { super(sessionFactory); assert this.sessionFactory != null : "SessionFactory was null."; } @Override @SuppressWarnings("unchecked") public List<GenericVulnerability> retrieveAll() { return sessionFactory.getCurrentSession() .createQuery("from GenericVulnerability genericVulnerability " + "order by genericVulnerability.id") .list(); } @Override protected Class<GenericVulnerability> getClassReference() { return GenericVulnerability.class; } @Override @SuppressWarnings("unchecked") public GenericVulnerability retrieveByDisplayId(Integer displayId) { List<GenericVulnerability> genericVulnerabilities = (List<GenericVulnerability>) sessionFactory .getCurrentSession().createCriteria(GenericVulnerability.class) .add(Restrictions.eq("cweId", displayId)).setMaxResults(1).list(); if (genericVulnerabilities != null && genericVulnerabilities.size() > 0) return genericVulnerabilities.get(0); return retrieveById(displayId); } @Override public List<GenericVulnerability> retrieveAllWithCustomText() { return sessionFactory.getCurrentSession().createCriteria(GenericVulnerability.class) .add(Restrictions.isNotNull("customText")).addOrder(Order.asc("id")).list(); } @Override public void insertAll(List<GenericVulnerability> vulnerabilityList) { StatelessSession statelessSession = sessionFactory.openStatelessSession(); Transaction transaction = statelessSession.beginTransaction(); try { for (GenericVulnerability vulnerability : vulnerabilityList) { statelessSession.insert(vulnerability); } transaction.commit(); } catch (Exception e) { transaction.rollback(); } finally { statelessSession.close(); } } }