@Override public void insertInBatch(final List<? extends PersistentObject> entities) throws SPersistenceException { if (!entities.isEmpty()) { final Session session = getSession(true); for (final PersistentObject entity : entities) { final Class<? extends PersistentObject> entityClass = entity.getClass(); checkClassMapping(entityClass); setId(entity); session.save(entity); } } }
@Override public void insertInBatch(final List<? extends PersistentObject> entities) throws SPersistenceException { if (!entities.isEmpty()) { final Session session = getSession(true); for (final PersistentObject entity : entities) { final Class<? extends PersistentObject> entityClass = entity.getClass(); checkClassMapping(entityClass); setId(entity); session.save(entity); } } }
@Override public void insert(final PersistentObject entity) throws SPersistenceException { final Class<? extends PersistentObject> entityClass = entity.getClass(); checkClassMapping(entityClass); final Session session = getSession(true); setId(entity); try { session.save(entity); } catch (final AssertionFailure | LockAcquisitionException | StaleStateException e) { throw new SRetryableException(e); } catch (final HibernateException he) { throw new SPersistenceException(he); } }
@Override public void insert(final PersistentObject entity) throws SPersistenceException { final Class<? extends PersistentObject> entityClass = entity.getClass(); checkClassMapping(entityClass); final Session session = getSession(true); setId(entity); try { session.save(entity); } catch (final AssertionFailure | LockAcquisitionException | StaleStateException e) { throw new SRetryableException(e); } catch (final HibernateException he) { throw new SPersistenceException(he); } }
@Override public void update(final UpdateDescriptor updateDescriptor) throws SPersistenceException { // FIXME: deal with disconnected objects: final Class<? extends PersistentObject> entityClass = updateDescriptor.getEntity().getClass(); checkClassMapping(entityClass); final PersistentObject entity = updateDescriptor.getEntity(); final Session session = getSession(false); if (!session.contains(entity)) { throw new SPersistenceException("The object cannot be updated because it's disconnected " + entity); } for (final Map.Entry<String, Object> field : updateDescriptor.getFields().entrySet()) { setField(entity, field.getKey(), field.getValue()); } }
@Override public void update(final UpdateDescriptor updateDescriptor) throws SPersistenceException { // FIXME: deal with disconnected objects: final Class<? extends PersistentObject> entityClass = updateDescriptor.getEntity().getClass(); checkClassMapping(entityClass); final PersistentObject entity = updateDescriptor.getEntity(); final Session session = getSession(false); if (!session.contains(entity)) { throw new SPersistenceException("The object cannot be updated because it's disconnected " + entity); } for (final Map.Entry<String, Object> field : updateDescriptor.getFields().entrySet()) { setField(entity, field.getKey(), field.getValue()); } }
@SuppressWarnings("unchecked") private <T> T selectOne(final Session session, final SelectOneDescriptor<T> selectDescriptor) throws SBonitaReadException { try { checkClassMapping(selectDescriptor.getEntityType()); } catch (final SPersistenceException e) { throw new SBonitaReadException(e); } final Query query = session.getNamedQuery(selectDescriptor.getQueryName()); setQueryCache(query, selectDescriptor.getQueryName()); final Map<String, Object> parameters = selectDescriptor.getInputParameters(); if (parameters != null) { setParameters(query, parameters); } query.setMaxResults(1); try { return disconnectIfReadOnly((T) query.uniqueResult(), query, session); } catch (final AssertionFailure | LockAcquisitionException | StaleStateException e) { throw new SRetryableException(e); } catch (final HibernateException he) { throw new SBonitaReadException(he); } }
@SuppressWarnings("unchecked") private <T> T selectOne(final Session session, final SelectOneDescriptor<T> selectDescriptor) throws SBonitaReadException { try { checkClassMapping(selectDescriptor.getEntityType()); } catch (final SPersistenceException e) { throw new SBonitaReadException(e); } final Query query = session.getNamedQuery(selectDescriptor.getQueryName()); setQueryCache(query, selectDescriptor.getQueryName()); final Map<String, Object> parameters = selectDescriptor.getInputParameters(); if (parameters != null) { setParameters(query, parameters); } query.setMaxResults(1); try { return disconnectIfReadOnly((T) query.uniqueResult(), query, session); } catch (final AssertionFailure | LockAcquisitionException | StaleStateException e) { throw new SRetryableException(e); } catch (final HibernateException he) { throw new SBonitaReadException(he); } }
try { final Class<? extends PersistentObject> entityClass = selectDescriptor.getEntityType(); checkClassMapping(entityClass);
try { final Class<? extends PersistentObject> entityClass = selectDescriptor.getEntityType(); checkClassMapping(entityClass);