/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.intel.mtwilson.as.controller; import com.intel.mtwilson.as.controller.exceptions.ASDataException; import com.intel.mtwilson.as.controller.exceptions.IllegalOrphanException; import com.intel.mtwilson.as.controller.exceptions.NonexistentEntityException; import com.intel.mtwilson.as.data.TblModuleManifest; import java.io.Serializable; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.NoResultException; import javax.persistence.Query; import javax.persistence.EntityNotFoundException; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Root; import org.eclipse.persistence.config.CacheUsage; import org.eclipse.persistence.config.HintValues; import org.eclipse.persistence.config.QueryHints; //import com.intel.mtwilson.as.data.TblDbPortalUser; import com.intel.mtwilson.as.data.TblMle; import com.intel.mtwilson.as.data.TblEventType; import com.intel.mtwilson.as.data.TblPackageNamespace; import com.intel.mtwilson.as.data.TblHostSpecificManifest; import java.util.ArrayList; import java.util.Collection; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * * @author dsmagadx */ public class TblModuleManifestJpaController implements Serializable { private Logger log = LoggerFactory.getLogger(getClass()); public TblModuleManifestJpaController(EntityManagerFactory emf) { this.emf = emf; } private EntityManagerFactory emf = null; public EntityManager getEntityManager() { return emf.createEntityManager(); } public void create(TblModuleManifest tblModuleManifest) { if (tblModuleManifest.getTblHostSpecificManifestCollection() == null) { tblModuleManifest.setTblHostSpecificManifestCollection(new ArrayList<TblHostSpecificManifest>()); } EntityManager em = getEntityManager(); try { em.getTransaction().begin(); // @since 1.1 we are relying on the audit log for "created on", "created by", etc. type information /* TblDbPortalUser updatedBy = tblModuleManifest.getUpdatedBy(); if (updatedBy != null) { updatedBy = em.getReference(updatedBy.getClass(), updatedBy.getId()); tblModuleManifest.setUpdatedBy(updatedBy); } TblDbPortalUser createdBy = tblModuleManifest.getCreatedBy(); if (createdBy != null) { createdBy = em.getReference(createdBy.getClass(), createdBy.getId()); tblModuleManifest.setCreatedBy(createdBy); } */ TblMle mleId = tblModuleManifest.getMleId(); if (mleId != null) { mleId = em.getReference(mleId.getClass(), mleId.getId()); tblModuleManifest.setMleId(mleId); } TblEventType eventID = tblModuleManifest.getEventID(); if (eventID != null) { eventID = em.getReference(eventID.getClass(), eventID.getId()); tblModuleManifest.setEventID(eventID); } TblPackageNamespace nameSpaceID = tblModuleManifest.getNameSpaceID(); if (nameSpaceID != null) { nameSpaceID = em.getReference(nameSpaceID.getClass(), nameSpaceID.getId()); tblModuleManifest.setNameSpaceID(nameSpaceID); } Collection<TblHostSpecificManifest> attachedTblHostSpecificManifestCollection = new ArrayList<TblHostSpecificManifest>(); for (TblHostSpecificManifest tblHostSpecificManifestCollectionTblHostSpecificManifestToAttach : tblModuleManifest.getTblHostSpecificManifestCollection()) { tblHostSpecificManifestCollectionTblHostSpecificManifestToAttach = em.getReference(tblHostSpecificManifestCollectionTblHostSpecificManifestToAttach.getClass(), tblHostSpecificManifestCollectionTblHostSpecificManifestToAttach.getId()); attachedTblHostSpecificManifestCollection.add(tblHostSpecificManifestCollectionTblHostSpecificManifestToAttach); } tblModuleManifest.setTblHostSpecificManifestCollection(attachedTblHostSpecificManifestCollection); em.persist(tblModuleManifest); // @since 1.1 we are relying on the audit log for "created on", "created by", etc. type information /* if (updatedBy != null) { updatedBy.getTblModuleManifestCollection().add(tblModuleManifest); em.merge(updatedBy); } if (createdBy != null) { createdBy.getTblModuleManifestCollection().add(tblModuleManifest); em.merge(createdBy); }*/ if (mleId != null) { mleId.getTblModuleManifestCollection().add(tblModuleManifest); em.merge(mleId); } if (eventID != null) { eventID.getTblModuleManifestCollection().add(tblModuleManifest); em.merge(eventID); } if (nameSpaceID != null) { nameSpaceID.getTblModuleManifestCollection().add(tblModuleManifest); em.merge(nameSpaceID); } for (TblHostSpecificManifest tblHostSpecificManifestCollectionTblHostSpecificManifest : tblModuleManifest.getTblHostSpecificManifestCollection()) { TblModuleManifest oldModuleManifestIDOfTblHostSpecificManifestCollectionTblHostSpecificManifest = tblHostSpecificManifestCollectionTblHostSpecificManifest.getModuleManifestID(); tblHostSpecificManifestCollectionTblHostSpecificManifest.setModuleManifestID(tblModuleManifest); tblHostSpecificManifestCollectionTblHostSpecificManifest = em.merge(tblHostSpecificManifestCollectionTblHostSpecificManifest); if (oldModuleManifestIDOfTblHostSpecificManifestCollectionTblHostSpecificManifest != null) { oldModuleManifestIDOfTblHostSpecificManifestCollectionTblHostSpecificManifest.getTblHostSpecificManifestCollection().remove(tblHostSpecificManifestCollectionTblHostSpecificManifest); em.merge(oldModuleManifestIDOfTblHostSpecificManifestCollectionTblHostSpecificManifest); } } em.getTransaction().commit(); } finally { em.close(); } } public void create_v2(TblModuleManifest tblModuleManifest, EntityManager em) { long createV2_1 = System.currentTimeMillis(); if (tblModuleManifest.getTblHostSpecificManifestCollection() == null) { tblModuleManifest.setTblHostSpecificManifestCollection(new ArrayList<TblHostSpecificManifest>()); } try { TblMle mleId = tblModuleManifest.getMleId(); if (mleId != null) { mleId = em.getReference(mleId.getClass(), mleId.getId()); tblModuleManifest.setMleId(mleId); } TblEventType eventID = tblModuleManifest.getEventID(); if (eventID != null) { eventID = em.getReference(eventID.getClass(), eventID.getId()); tblModuleManifest.setEventID(eventID); } TblPackageNamespace nameSpaceID = tblModuleManifest.getNameSpaceID(); if (nameSpaceID != null) { nameSpaceID = em.getReference(nameSpaceID.getClass(), nameSpaceID.getId()); tblModuleManifest.setNameSpaceID(nameSpaceID); } long createV2_2 = System.currentTimeMillis(); log.debug("CREATE_V2 - Time taken to setup IDs :" + (createV2_2 - createV2_1) + "milliseconds."); Collection<TblHostSpecificManifest> attachedTblHostSpecificManifestCollection = new ArrayList<TblHostSpecificManifest>(); for (TblHostSpecificManifest tblHostSpecificManifestCollectionTblHostSpecificManifestToAttach : tblModuleManifest.getTblHostSpecificManifestCollection()) { tblHostSpecificManifestCollectionTblHostSpecificManifestToAttach = em.getReference(tblHostSpecificManifestCollectionTblHostSpecificManifestToAttach.getClass(), tblHostSpecificManifestCollectionTblHostSpecificManifestToAttach.getId()); attachedTblHostSpecificManifestCollection.add(tblHostSpecificManifestCollectionTblHostSpecificManifestToAttach); } tblModuleManifest.setTblHostSpecificManifestCollection(attachedTblHostSpecificManifestCollection); em.persist(tblModuleManifest); long createV2_3 = System.currentTimeMillis(); log.debug("CREATE_V2 - Time taken to insert and persist :" + (createV2_3 - createV2_2) + "milliseconds."); if (mleId != null) { mleId.getTblModuleManifestCollection().add(tblModuleManifest); em.merge(mleId); } if (eventID != null) { eventID.getTblModuleManifestCollection().add(tblModuleManifest); em.merge(eventID); } if (nameSpaceID != null) { nameSpaceID.getTblModuleManifestCollection().add(tblModuleManifest); em.merge(nameSpaceID); } for (TblHostSpecificManifest tblHostSpecificManifestCollectionTblHostSpecificManifest : tblModuleManifest.getTblHostSpecificManifestCollection()) { TblModuleManifest oldModuleManifestIDOfTblHostSpecificManifestCollectionTblHostSpecificManifest = tblHostSpecificManifestCollectionTblHostSpecificManifest.getModuleManifestID(); tblHostSpecificManifestCollectionTblHostSpecificManifest.setModuleManifestID(tblModuleManifest); tblHostSpecificManifestCollectionTblHostSpecificManifest = em.merge(tblHostSpecificManifestCollectionTblHostSpecificManifest); if (oldModuleManifestIDOfTblHostSpecificManifestCollectionTblHostSpecificManifest != null) { oldModuleManifestIDOfTblHostSpecificManifestCollectionTblHostSpecificManifest.getTblHostSpecificManifestCollection().remove(tblHostSpecificManifestCollectionTblHostSpecificManifest); em.merge(oldModuleManifestIDOfTblHostSpecificManifestCollectionTblHostSpecificManifest); } } long createV2_4 = System.currentTimeMillis(); log.debug("CREATE_V2 - Time taken for merge operations :" + (createV2_4 - createV2_3) + "milliseconds."); } finally { } } public void edit(TblModuleManifest tblModuleManifest) throws IllegalOrphanException, NonexistentEntityException, ASDataException { EntityManager em = getEntityManager(); try { em.getTransaction().begin(); TblModuleManifest persistentTblModuleManifest = em.find(TblModuleManifest.class, tblModuleManifest.getId()); // @since 1.1 we are relying on the audit log for "created on", "created by", etc. type information /* TblDbPortalUser updatedByOld = persistentTblModuleManifest.getUpdatedBy(); TblDbPortalUser updatedByNew = tblModuleManifest.getUpdatedBy(); TblDbPortalUser createdByOld = persistentTblModuleManifest.getCreatedBy(); TblDbPortalUser createdByNew = tblModuleManifest.getCreatedBy(); */ TblMle mleIdOld = persistentTblModuleManifest.getMleId(); TblMle mleIdNew = tblModuleManifest.getMleId(); TblEventType eventIDOld = persistentTblModuleManifest.getEventID(); TblEventType eventIDNew = tblModuleManifest.getEventID(); TblPackageNamespace nameSpaceIDOld = persistentTblModuleManifest.getNameSpaceID(); TblPackageNamespace nameSpaceIDNew = tblModuleManifest.getNameSpaceID(); Collection<TblHostSpecificManifest> tblHostSpecificManifestCollectionOld = persistentTblModuleManifest.getTblHostSpecificManifestCollection(); Collection<TblHostSpecificManifest> tblHostSpecificManifestCollectionNew = tblModuleManifest.getTblHostSpecificManifestCollection(); List<String> illegalOrphanMessages = null; for (TblHostSpecificManifest tblHostSpecificManifestCollectionOldTblHostSpecificManifest : tblHostSpecificManifestCollectionOld) { if (!tblHostSpecificManifestCollectionNew.contains(tblHostSpecificManifestCollectionOldTblHostSpecificManifest)) { if (illegalOrphanMessages == null) { illegalOrphanMessages = new ArrayList<String>(); } illegalOrphanMessages.add("You must retain TblHostSpecificManifest " + tblHostSpecificManifestCollectionOldTblHostSpecificManifest + " since its moduleManifestID field is not nullable."); } } if (illegalOrphanMessages != null) { throw new IllegalOrphanException(illegalOrphanMessages); } // @since 1.1 we are relying on the audit log for "created on", "created by", etc. type information /* if (updatedByNew != null) { updatedByNew = em.getReference(updatedByNew.getClass(), updatedByNew.getId()); tblModuleManifest.setUpdatedBy(updatedByNew); } if (createdByNew != null) { createdByNew = em.getReference(createdByNew.getClass(), createdByNew.getId()); tblModuleManifest.setCreatedBy(createdByNew); }*/ if (mleIdNew != null) { mleIdNew = em.getReference(mleIdNew.getClass(), mleIdNew.getId()); tblModuleManifest.setMleId(mleIdNew); } if (eventIDNew != null) { eventIDNew = em.getReference(eventIDNew.getClass(), eventIDNew.getId()); tblModuleManifest.setEventID(eventIDNew); } if (nameSpaceIDNew != null) { nameSpaceIDNew = em.getReference(nameSpaceIDNew.getClass(), nameSpaceIDNew.getId()); tblModuleManifest.setNameSpaceID(nameSpaceIDNew); } Collection<TblHostSpecificManifest> attachedTblHostSpecificManifestCollectionNew = new ArrayList<TblHostSpecificManifest>(); for (TblHostSpecificManifest tblHostSpecificManifestCollectionNewTblHostSpecificManifestToAttach : tblHostSpecificManifestCollectionNew) { tblHostSpecificManifestCollectionNewTblHostSpecificManifestToAttach = em.getReference(tblHostSpecificManifestCollectionNewTblHostSpecificManifestToAttach.getClass(), tblHostSpecificManifestCollectionNewTblHostSpecificManifestToAttach.getId()); attachedTblHostSpecificManifestCollectionNew.add(tblHostSpecificManifestCollectionNewTblHostSpecificManifestToAttach); } tblHostSpecificManifestCollectionNew = attachedTblHostSpecificManifestCollectionNew; tblModuleManifest.setTblHostSpecificManifestCollection(tblHostSpecificManifestCollectionNew); tblModuleManifest = em.merge(tblModuleManifest); // @since 1.1 we are relying on the audit log for "created on", "created by", etc. type information /* if (updatedByOld != null && !updatedByOld.equals(updatedByNew)) { updatedByOld.getTblModuleManifestCollection().remove(tblModuleManifest); updatedByOld = em.merge(updatedByOld); } if (updatedByNew != null && !updatedByNew.equals(updatedByOld)) { updatedByNew.getTblModuleManifestCollection().add(tblModuleManifest); em.merge(updatedByNew); } if (createdByOld != null && !createdByOld.equals(createdByNew)) { createdByOld.getTblModuleManifestCollection().remove(tblModuleManifest); createdByOld = em.merge(createdByOld); } if (createdByNew != null && !createdByNew.equals(createdByOld)) { createdByNew.getTblModuleManifestCollection().add(tblModuleManifest); em.merge(createdByNew); } */ if (mleIdOld != null && !mleIdOld.equals(mleIdNew)) { mleIdOld.getTblModuleManifestCollection().remove(tblModuleManifest); mleIdOld = em.merge(mleIdOld); } if (mleIdNew != null && !mleIdNew.equals(mleIdOld)) { mleIdNew.getTblModuleManifestCollection().add(tblModuleManifest); em.merge(mleIdNew); } if (eventIDOld != null && !eventIDOld.equals(eventIDNew)) { eventIDOld.getTblModuleManifestCollection().remove(tblModuleManifest); eventIDOld = em.merge(eventIDOld); } if (eventIDNew != null && !eventIDNew.equals(eventIDOld)) { eventIDNew.getTblModuleManifestCollection().add(tblModuleManifest); em.merge(eventIDNew); } if (nameSpaceIDOld != null && !nameSpaceIDOld.equals(nameSpaceIDNew)) { nameSpaceIDOld.getTblModuleManifestCollection().remove(tblModuleManifest); nameSpaceIDOld = em.merge(nameSpaceIDOld); } if (nameSpaceIDNew != null && !nameSpaceIDNew.equals(nameSpaceIDOld)) { nameSpaceIDNew.getTblModuleManifestCollection().add(tblModuleManifest); em.merge(nameSpaceIDNew); } for (TblHostSpecificManifest tblHostSpecificManifestCollectionNewTblHostSpecificManifest : tblHostSpecificManifestCollectionNew) { if (!tblHostSpecificManifestCollectionOld.contains(tblHostSpecificManifestCollectionNewTblHostSpecificManifest)) { TblModuleManifest oldModuleManifestIDOfTblHostSpecificManifestCollectionNewTblHostSpecificManifest = tblHostSpecificManifestCollectionNewTblHostSpecificManifest.getModuleManifestID(); tblHostSpecificManifestCollectionNewTblHostSpecificManifest.setModuleManifestID(tblModuleManifest); tblHostSpecificManifestCollectionNewTblHostSpecificManifest = em.merge(tblHostSpecificManifestCollectionNewTblHostSpecificManifest); if (oldModuleManifestIDOfTblHostSpecificManifestCollectionNewTblHostSpecificManifest != null && !oldModuleManifestIDOfTblHostSpecificManifestCollectionNewTblHostSpecificManifest.equals(tblModuleManifest)) { oldModuleManifestIDOfTblHostSpecificManifestCollectionNewTblHostSpecificManifest.getTblHostSpecificManifestCollection().remove(tblHostSpecificManifestCollectionNewTblHostSpecificManifest); em.merge(oldModuleManifestIDOfTblHostSpecificManifestCollectionNewTblHostSpecificManifest); } } } em.getTransaction().commit(); } catch (Exception ex) { String msg = ex.getLocalizedMessage(); if (msg == null || msg.length() == 0) { Integer id = tblModuleManifest.getId(); if (findTblModuleManifest(id) == null) { throw new NonexistentEntityException("The tblModuleManifest with id " + id + " no longer exists."); } } throw new ASDataException(ex); } finally { em.close(); } } public void edit_v2(TblModuleManifest tblModuleManifest, EntityManager em) throws IllegalOrphanException, NonexistentEntityException, ASDataException { try { TblModuleManifest persistentTblModuleManifest = em.find(TblModuleManifest.class, tblModuleManifest.getId()); TblMle mleIdOld = persistentTblModuleManifest.getMleId(); TblMle mleIdNew = tblModuleManifest.getMleId(); TblEventType eventIDOld = persistentTblModuleManifest.getEventID(); TblEventType eventIDNew = tblModuleManifest.getEventID(); TblPackageNamespace nameSpaceIDOld = persistentTblModuleManifest.getNameSpaceID(); TblPackageNamespace nameSpaceIDNew = tblModuleManifest.getNameSpaceID(); Collection<TblHostSpecificManifest> tblHostSpecificManifestCollectionOld = persistentTblModuleManifest.getTblHostSpecificManifestCollection(); Collection<TblHostSpecificManifest> tblHostSpecificManifestCollectionNew = tblModuleManifest.getTblHostSpecificManifestCollection(); List<String> illegalOrphanMessages = null; for (TblHostSpecificManifest tblHostSpecificManifestCollectionOldTblHostSpecificManifest : tblHostSpecificManifestCollectionOld) { if (!tblHostSpecificManifestCollectionNew.contains(tblHostSpecificManifestCollectionOldTblHostSpecificManifest)) { if (illegalOrphanMessages == null) { illegalOrphanMessages = new ArrayList<String>(); } illegalOrphanMessages.add("You must retain TblHostSpecificManifest " + tblHostSpecificManifestCollectionOldTblHostSpecificManifest + " since its moduleManifestID field is not nullable."); } } if (illegalOrphanMessages != null) { throw new IllegalOrphanException(illegalOrphanMessages); } if (mleIdNew != null) { mleIdNew = em.getReference(mleIdNew.getClass(), mleIdNew.getId()); tblModuleManifest.setMleId(mleIdNew); } if (eventIDNew != null) { eventIDNew = em.getReference(eventIDNew.getClass(), eventIDNew.getId()); tblModuleManifest.setEventID(eventIDNew); } if (nameSpaceIDNew != null) { nameSpaceIDNew = em.getReference(nameSpaceIDNew.getClass(), nameSpaceIDNew.getId()); tblModuleManifest.setNameSpaceID(nameSpaceIDNew); } Collection<TblHostSpecificManifest> attachedTblHostSpecificManifestCollectionNew = new ArrayList<TblHostSpecificManifest>(); for (TblHostSpecificManifest tblHostSpecificManifestCollectionNewTblHostSpecificManifestToAttach : tblHostSpecificManifestCollectionNew) { tblHostSpecificManifestCollectionNewTblHostSpecificManifestToAttach = em.getReference(tblHostSpecificManifestCollectionNewTblHostSpecificManifestToAttach.getClass(), tblHostSpecificManifestCollectionNewTblHostSpecificManifestToAttach.getId()); attachedTblHostSpecificManifestCollectionNew.add(tblHostSpecificManifestCollectionNewTblHostSpecificManifestToAttach); } tblHostSpecificManifestCollectionNew = attachedTblHostSpecificManifestCollectionNew; tblModuleManifest.setTblHostSpecificManifestCollection(tblHostSpecificManifestCollectionNew); tblModuleManifest = em.merge(tblModuleManifest); if (mleIdOld != null && !mleIdOld.equals(mleIdNew)) { mleIdOld.getTblModuleManifestCollection().remove(tblModuleManifest); mleIdOld = em.merge(mleIdOld); } if (mleIdNew != null && !mleIdNew.equals(mleIdOld)) { mleIdNew.getTblModuleManifestCollection().add(tblModuleManifest); em.merge(mleIdNew); } if (eventIDOld != null && !eventIDOld.equals(eventIDNew)) { eventIDOld.getTblModuleManifestCollection().remove(tblModuleManifest); eventIDOld = em.merge(eventIDOld); } if (eventIDNew != null && !eventIDNew.equals(eventIDOld)) { eventIDNew.getTblModuleManifestCollection().add(tblModuleManifest); em.merge(eventIDNew); } if (nameSpaceIDOld != null && !nameSpaceIDOld.equals(nameSpaceIDNew)) { nameSpaceIDOld.getTblModuleManifestCollection().remove(tblModuleManifest); nameSpaceIDOld = em.merge(nameSpaceIDOld); } if (nameSpaceIDNew != null && !nameSpaceIDNew.equals(nameSpaceIDOld)) { nameSpaceIDNew.getTblModuleManifestCollection().add(tblModuleManifest); em.merge(nameSpaceIDNew); } for (TblHostSpecificManifest tblHostSpecificManifestCollectionNewTblHostSpecificManifest : tblHostSpecificManifestCollectionNew) { if (!tblHostSpecificManifestCollectionOld.contains(tblHostSpecificManifestCollectionNewTblHostSpecificManifest)) { TblModuleManifest oldModuleManifestIDOfTblHostSpecificManifestCollectionNewTblHostSpecificManifest = tblHostSpecificManifestCollectionNewTblHostSpecificManifest.getModuleManifestID(); tblHostSpecificManifestCollectionNewTblHostSpecificManifest.setModuleManifestID(tblModuleManifest); tblHostSpecificManifestCollectionNewTblHostSpecificManifest = em.merge(tblHostSpecificManifestCollectionNewTblHostSpecificManifest); if (oldModuleManifestIDOfTblHostSpecificManifestCollectionNewTblHostSpecificManifest != null && !oldModuleManifestIDOfTblHostSpecificManifestCollectionNewTblHostSpecificManifest.equals(tblModuleManifest)) { oldModuleManifestIDOfTblHostSpecificManifestCollectionNewTblHostSpecificManifest.getTblHostSpecificManifestCollection().remove(tblHostSpecificManifestCollectionNewTblHostSpecificManifest); em.merge(oldModuleManifestIDOfTblHostSpecificManifestCollectionNewTblHostSpecificManifest); } } } } catch (Exception ex) { String msg = ex.getLocalizedMessage(); if (msg == null || msg.length() == 0) { Integer id = tblModuleManifest.getId(); if (findTblModuleManifest(id) == null) { throw new NonexistentEntityException("The tblModuleManifest with id " + id + " no longer exists."); } } throw new ASDataException(ex); } finally { } } public void destroy(Integer id) throws IllegalOrphanException, NonexistentEntityException { EntityManager em = getEntityManager(); try { em.getTransaction().begin(); TblModuleManifest tblModuleManifest; try { tblModuleManifest = em.getReference(TblModuleManifest.class, id); tblModuleManifest.getId(); } catch (EntityNotFoundException enfe) { throw new NonexistentEntityException("The tblModuleManifest with id " + id + " no longer exists.", enfe); } List<String> illegalOrphanMessages = null; Collection<TblHostSpecificManifest> tblHostSpecificManifestCollectionOrphanCheck = tblModuleManifest.getTblHostSpecificManifestCollection(); for (TblHostSpecificManifest tblHostSpecificManifestCollectionOrphanCheckTblHostSpecificManifest : tblHostSpecificManifestCollectionOrphanCheck) { if (illegalOrphanMessages == null) { illegalOrphanMessages = new ArrayList<String>(); } illegalOrphanMessages.add("This TblModuleManifest (" + tblModuleManifest + ") cannot be destroyed since the TblHostSpecificManifest " + tblHostSpecificManifestCollectionOrphanCheckTblHostSpecificManifest + " in its tblHostSpecificManifestCollection field has a non-nullable moduleManifestID field."); } if (illegalOrphanMessages != null) { throw new IllegalOrphanException(illegalOrphanMessages); } // @since 1.1 we are relying on the audit log for "created on", "created by", etc. type information /* TblDbPortalUser updatedBy = tblModuleManifest.getUpdatedBy(); if (updatedBy != null) { updatedBy.getTblModuleManifestCollection().remove(tblModuleManifest); em.merge(updatedBy); } TblDbPortalUser createdBy = tblModuleManifest.getCreatedBy(); if (createdBy != null) { createdBy.getTblModuleManifestCollection().remove(tblModuleManifest); em.merge(createdBy); } */ TblMle mleId = tblModuleManifest.getMleId(); if (mleId != null) { mleId.getTblModuleManifestCollection().remove(tblModuleManifest); em.merge(mleId); } TblEventType eventID = tblModuleManifest.getEventID(); if (eventID != null) { eventID.getTblModuleManifestCollection().remove(tblModuleManifest); em.merge(eventID); } TblPackageNamespace nameSpaceID = tblModuleManifest.getNameSpaceID(); if (nameSpaceID != null) { nameSpaceID.getTblModuleManifestCollection().remove(tblModuleManifest); em.merge(nameSpaceID); } em.remove(tblModuleManifest); em.getTransaction().commit(); } finally { em.close(); } } public List<TblModuleManifest> findTblModuleManifestEntities() { return findTblModuleManifestEntities(true, -1, -1); } public List<TblModuleManifest> findTblModuleManifestEntities(int maxResults, int firstResult) { return findTblModuleManifestEntities(false, maxResults, firstResult); } private List<TblModuleManifest> findTblModuleManifestEntities(boolean all, int maxResults, int firstResult) { EntityManager em = getEntityManager(); try { CriteriaQuery cq = em.getCriteriaBuilder().createQuery(); cq.select(cq.from(TblModuleManifest.class)); Query q = em.createQuery(cq); if (!all) { q.setMaxResults(maxResults); q.setFirstResult(firstResult); } return q.getResultList(); } finally { em.close(); } } public TblModuleManifest findTblModuleManifest(Integer id) { EntityManager em = getEntityManager(); try { return em.find(TblModuleManifest.class, id); } finally { em.close(); } } public int getTblModuleManifestCount() { EntityManager em = getEntityManager(); try { CriteriaQuery cq = em.getCriteriaBuilder().createQuery(); Root<TblModuleManifest> rt = cq.from(TblModuleManifest.class); cq.select(em.getCriteriaBuilder().count(rt)); Query q = em.createQuery(cq); return ((Long) q.getSingleResult()).intValue(); } finally { em.close(); } } public List<TblModuleManifest> findByMleId(Integer mleId) { EntityManager em = getEntityManager(); try { Query query = em.createNamedQuery("TblModuleManifest.findByMleId"); query.setParameter("mleId", mleId); query.setHint(QueryHints.REFRESH, HintValues.TRUE); query.setHint(QueryHints.CACHE_USAGE, CacheUsage.DoNotCheckCache); List<TblModuleManifest> tblModuleManifestList = query.getResultList(); return tblModuleManifestList; } finally { em.close(); } } /** * Modified By: Sudhir on June 21st to remove the throw of ASException. Instead the NoResultException is * being thrown, which is caught by the caller. * * @param mleId * @param componentName * @param eventName * @return */ public TblModuleManifest findByMleNameEventName(Integer mleId,String componentName, String eventName){ EntityManager em = getEntityManager(); try { log.debug(String.format("Module Manifest for MLE: %d Component: %s Event: %s", mleId,componentName, eventName)); Query query = em.createNamedQuery("TblModuleManifest.findByMleNameEventName"); query.setParameter("name", componentName); query.setParameter("eventName", eventName); query.setParameter("mleId", mleId); query.setHint(QueryHints.REFRESH, HintValues.TRUE); query.setHint(QueryHints.CACHE_USAGE, CacheUsage.DoNotCheckCache); TblModuleManifest tblModuleManifest= (TblModuleManifest) query.getSingleResult(); return tblModuleManifest; } catch(NoResultException e){ log.error(String.format("Module Manifest for MLE %d Component %s Event %s Not found in Database ", mleId,componentName, eventName), e); return null; } finally { em.close(); } } public Integer findByMleIdEventId(Integer mleId, String componentName, Integer eventId){ EntityManager em = getEntityManager(); try { log.debug(String.format("Module Manifest for MLE: %d Component: %s Event: %s", mleId,componentName, eventId)); Query query = em.createNamedQuery("TblModuleManifest.findByMleIDEventID"); query.setParameter("name", componentName); query.setParameter("eventId", eventId); query.setParameter("mleId", mleId); query.setHint(QueryHints.REFRESH, HintValues.TRUE); query.setHint(QueryHints.CACHE_USAGE, CacheUsage.CheckCacheThenDatabase); Integer componentId = (Integer) query.getSingleResult(); return componentId; } catch(NoResultException e){ //log.error(String.format("Module Manifest for MLE %d Component %s Event %s Not found in Database ", mleId,componentName, eventId), e); log.info("Module Manifest for MLE {}, Component {} & Event {} not found in Database ", mleId, componentName, eventId); return null; } finally { em.close(); } } public List<TblModuleManifest> findTblModuleManifestByMleUuid(String mleUuid) { EntityManager em = getEntityManager(); try { Query query = em.createNamedQuery("TblModuleManifest.findByMleUuidHex"); query.setParameter("mle_uuid_hex", mleUuid); List<TblModuleManifest> moduleList = query.getResultList(); return moduleList; } catch(NoResultException e){ log.error(String.format("MLE information with UUID {} not found in the DB.", mleUuid)); return null; } finally { em.close(); } } public TblModuleManifest findTblModuleManifestByUuid(String uuid) { EntityManager em = getEntityManager(); try { Query query = em.createNamedQuery("TblModuleManifest.findByUuidHex"); query.setParameter("uuid_hex", uuid); TblModuleManifest pcrObj = (TblModuleManifest) query.getSingleResult(); return pcrObj; } catch(NoResultException e){ log.error(String.format("Module information with UUID {} not found in the DB.", uuid)); return null; } finally { em.close(); } } public List<TblModuleManifest> findTblModuleManifestByComponentNameLike(String moduleName) { EntityManager em = getEntityManager(); try { Query query = em.createNamedQuery("TblModuleManifest.findByComponentNameLike"); query.setParameter("name", "%"+moduleName+"%"); List<TblModuleManifest> pcrList = query.getResultList(); return pcrList; } catch(NoResultException e){ log.error(String.format("Module information with name {} not found in the DB.", moduleName)); return null; } finally { em.close(); } } public List<TblModuleManifest> findByComponentVlaue(String digestValue) { EntityManager em = getEntityManager(); try { Query query = em.createNamedQuery("TblModuleManifest.findByModuleValue"); query.setParameter("digestValue", digestValue); List<TblModuleManifest> pcrList = query.getResultList(); return pcrList; } catch(NoResultException e){ log.error(String.format("Module information with name {} not found in the DB.", digestValue)); return null; } finally { em.close(); } } }