Java Code Examples for org.hibernate.Session#saveOrUpdate()
The following examples show how to use
org.hibernate.Session#saveOrUpdate() .
These examples are extracted from open source projects.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source Project: unitime File: CourseCreditTypes.java License: Apache License 2.0 | 6 votes |
protected void update(CourseCreditType credit, Record record, SessionContext context, Session hibSession) { if (credit == null) return; if (ToolBox.equals(credit.getReference(), record.getField(0)) && ToolBox.equals(credit.getLabel(), record.getField(1)) && ToolBox.equals(credit.getAbbreviation(), record.getField(2))) return; credit.setReference(record.getField(0)); credit.setLabel(record.getField(1)); credit.setAbbreviation(record.getField(2)); hibSession.saveOrUpdate(credit); ChangeLog.addChange(hibSession, context, credit, credit.getReference() + " " + credit.getLabel(), Source.SIMPLE_EDIT, Operation.UPDATE, null, null); }
Example 2
Source Project: authlib-agent File: AccountResourceImpl.java License: MIT License | 6 votes |
@Transactional @Override public AccountInfo updateOrCreateAccount(String id, AccountInfo info) { requireNonNullBody(info); Session session = sessionFactory.getCurrentSession(); Account account = session.get(Account.class, id); if (account == null) { account = new Account(); account.setId(id); } fillAccountInfo(account, info); session.saveOrUpdate(account); return new AccountInfo(account); }
Example 3
Source Project: unitime File: AttachmentTypes.java License: Apache License 2.0 | 6 votes |
protected void update(AttachmentType type, Record record, SessionContext context, Session hibSession) { if (type == null) return; if (ToolBox.equals(type.getReference(), record.getField(0)) && ToolBox.equals(type.getAbbreviation(), record.getField(1)) && ToolBox.equals(type.getLabel(), record.getField(2)) && type.getVisibility() == getVisibility(record)) return; type.setReference(record.getField(0)); type.setAbbreviation(record.getField(1)); type.setLabel(record.getField(2)); type.setVisibility(getVisibility(record)); hibSession.saveOrUpdate(type); ChangeLog.addChange(hibSession, context, type, type.getReference(), Source.SIMPLE_EDIT, Operation.UPDATE, null, null); }
Example 4
Source Project: unitime File: CourseCreditFormats.java License: Apache License 2.0 | 6 votes |
protected void update(CourseCreditFormat credit, Record record, SessionContext context, Session hibSession) { if (credit == null) return; if (ToolBox.equals(credit.getReference(), record.getField(0)) && ToolBox.equals(credit.getLabel(), record.getField(1)) && ToolBox.equals(credit.getAbbreviation(), record.getField(2))) return; credit.setReference(record.getField(0)); credit.setLabel(record.getField(1)); credit.setAbbreviation(record.getField(2)); hibSession.saveOrUpdate(credit); ChangeLog.addChange(hibSession, context, credit, credit.getReference() + " " + credit.getLabel(), Source.SIMPLE_EDIT, Operation.UPDATE, null, null); }
Example 5
Source Project: unitime File: OfferingConsentTypes.java License: Apache License 2.0 | 6 votes |
protected void update(OfferingConsentType consent, Record record, SessionContext context, Session hibSession) { if (consent == null) return; if (ToolBox.equals(consent.getReference(), record.getField(0)) && ToolBox.equals(consent.getLabel(), record.getField(1)) && ToolBox.equals(consent.getAbbv(), record.getField(2))) return; consent.setReference(record.getField(0)); consent.setLabel(record.getField(1)); consent.setAbbv(record.getField(2)); hibSession.saveOrUpdate(consent); ChangeLog.addChange(hibSession, context, consent, consent.getReference() + " " + consent.getLabel(), Source.SIMPLE_EDIT, Operation.UPDATE, null, null); }
Example 6
Source Project: document-management-system File: UserItemsDAO.java License: GNU General Public License v2.0 | 6 votes |
/** * Update user items */ public static void update(UserItems ui) throws DatabaseException { log.debug("update({})", ui); Session session = null; Transaction tx = null; try { session = HibernateUtil.getSessionFactory().openSession(); tx = session.beginTransaction(); session.saveOrUpdate(ui); HibernateUtil.commit(tx); } catch (HibernateException e) { HibernateUtil.rollback(tx); throw new DatabaseException(e.getMessage(), e); } finally { HibernateUtil.close(session); } log.debug("update: void"); }
Example 7
Source Project: cacheonix-core File: MergeTest.java License: GNU Lesser General Public License v2.1 | 6 votes |
public void testPersistThenMergeInSameTxnWithVersion() { Session s = openSession(); Transaction tx = s.beginTransaction(); VersionedEntity entity = new VersionedEntity( "test", "test" ); s.persist( entity ); s.merge( new VersionedEntity( "test", "test-2" ) ); try { // control operation... s.saveOrUpdate( new VersionedEntity( "test", "test-3" ) ); fail( "saveOrUpdate() should fail here" ); } catch( NonUniqueObjectException expected ) { // expected behavior } tx.commit(); s.close(); cleanup(); }
Example 8
Source Project: modeldb File: VersioningUtils.java License: Apache License 2.0 | 5 votes |
public static void saveOrUpdateArtifactPartEntity( ArtifactPart artifactPart, Session session, String artifactId, int artifactType) { ArtifactPartEntity artifactPartEntity = new ArtifactPartEntity( artifactId, artifactType, artifactPart.getPartNumber(), artifactPart.getEtag()); session.beginTransaction(); session.saveOrUpdate(artifactPartEntity); session.getTransaction().commit(); }
Example 9
Source Project: cacheonix-core File: SaveOrUpdateTest.java License: GNU Lesser General Public License v2.1 | 5 votes |
public void testSaveOrUpdateTreeWithGeneratedId() { clearCounts(); Session s = openSession(); Transaction tx = s.beginTransaction(); NumberedNode root = new NumberedNode( "root" ); NumberedNode child = new NumberedNode( "child" ); root.addChild( child ); s.saveOrUpdate( root ); tx.commit(); s.close(); assertInsertCount( 2 ); clearCounts(); root.setDescription( "The root node" ); child.setDescription( "The child node" ); NumberedNode secondChild = new NumberedNode( "second child" ); root.addChild( secondChild ); s = openSession(); tx = s.beginTransaction(); s.saveOrUpdate( root ); tx.commit(); s.close(); assertInsertCount( 1 ); assertUpdateCount( 2 ); s = openSession(); tx = s.beginTransaction(); s.createQuery( "delete from NumberedNode where parent is not null" ).executeUpdate(); s.createQuery( "delete from NumberedNode" ).executeUpdate(); tx.commit(); s.close(); }
Example 10
Source Project: cacheonix-core File: BackrefCompositeMapKeyTest.java License: GNU Lesser General Public License v2.1 | 5 votes |
public void testOrphanDeleteOnSaveOrUpdateAfterSerialization() { Session session = openSession(); Transaction t = session.beginTransaction(); Product prod = new Product( "Widget" ); Part part = new Part( "Widge", "part if a Widget" ); MapKey mapKey = new MapKey( "Top" ); prod.getParts().put( mapKey, part ); Part part2 = new Part( "Get", "another part if a Widget" ); prod.getParts().put( new MapKey( "Bottom" ), part2 ); session.persist( prod ); t.commit(); session.close(); prod.getParts().remove( mapKey ); prod = (Product) SerializationHelper.clone( prod ); session = openSession(); t = session.beginTransaction(); session.saveOrUpdate(prod); t.commit(); session.close(); session = openSession(); t = session.beginTransaction(); assertNull( session.get(Part.class, "Widge") ); assertNotNull( session.get(Part.class, "Get") ); session.delete( session.get(Product.class, "Widget") ); t.commit(); session.close(); }
Example 11
Source Project: Resource File: UserDaoImpl.java License: GNU General Public License v3.0 | 5 votes |
@Override @Transactional(propagation = Propagation.REQUIRED) public void saveOrUpdateEntity(User user) { Session session = sessionFactory.getCurrentSession(); session.saveOrUpdate(user); }
Example 12
Source Project: fastdfs-zyc File: WarningServiceImpl.java License: GNU General Public License v2.0 | 5 votes |
@Override @Transactional(propagation = Propagation.REQUIRED) public void updateWarUser(WarningUser wu) throws IOException, MyException { //To change body of implemented methods use File | Settings | File Templates. Session session = getSession(); session.saveOrUpdate(wu); }
Example 13
Source Project: SensorWebClient File: HibernateUtil.java License: GNU General Public License v2.0 | 5 votes |
@SuppressWarnings("unchecked") public static boolean updateUserStatus(int userID, boolean active) { Session session = getSessionFactory().getCurrentSession(); session.beginTransaction(); Criteria crit = session.createCriteria(User.class); List<User> users = crit.add(Restrictions.eq(ID, userID)).list(); if (users.size() != 1) { return false; } User user = users.get(0); user.setActivated(active); session.saveOrUpdate(user); session.getTransaction().commit(); return true; }
Example 14
Source Project: aw-reporting File: SqlReportEntitiesPersister.java License: Apache License 2.0 | 4 votes |
/** * Persists all the given entities into the DB configured in the {@code SessionFactory}. Specify * the following system properties backoff.delay */ @Override @Transactional @Retryable( value = {LockAcquisitionException.class}, maxAttemptsExpression = "#{ @systemProperties['retryBackoff'] ?: 20}", backoff = @Backoff( delayExpression = "#{ @systemProperties['retryDelay'] ?: 100}", maxDelayExpression = "#{ @systemProperties['retryMaxDelay'] ?: 50000 }", multiplierExpression = "#{ @systemProperties['retryMultiplier'] ?: 1.5}")) public void persistReportEntities(List<? extends Report> reportEntities) { int batchFlush = 0; Session session = sessionFactory.getCurrentSession(); FlushMode previousFlushMode = session.getHibernateFlushMode(); session.setHibernateFlushMode(FlushMode.MANUAL); try { for (Report report : reportEntities) { report.setRowId(); session.saveOrUpdate(report); batchFlush++; if (batchFlush == config.getBatchSize()) { session.flush(); session.clear(); batchFlush = 0; } } if (batchFlush > 0) { session.flush(); session.clear(); } } catch (NonUniqueObjectException ex) { // Github issue 268 & 280 // https://github.com/googleads/aw-reporting/issues/268 // https://github.com/googleads/aw-reporting/issues/280 // // Currently we allow specifying report definitions which do not include all primary key // fields. This leads to cryptic hibernate errors without providing a reasonable // resolution strategy. // // This fix explains where to find the list of primary key fields, but does not address // the underlying issue of allowing non-unique rows to be downloaded in the first place. // // Ideally we would guarantee uniqueness of rows without the user having to specify the // PK fields. // However, this would be a substantial migration for the AWReporting user base. // Instead, we just log a (hopefully) useful error message. // Also note that the error message assumes that reportEntities was not empty, because // otherwise the exception would not have been thrown. logger.error( "Duplicate row detected. This is most likely because your report definition does not " + "include the primary key fields defined in {}.setRowId(). " + "Please add the missing fields and try again.", reportEntities.get(0).getClass().getName()); throw ex; } finally { session.setHibernateFlushMode(previousFlushMode); } }
Example 15
Source Project: sdudoc File: UserDaoImpl.java License: MIT License | 4 votes |
@Override public void updateUser(User user) { Session session = sessionFactory.getCurrentSession(); session.saveOrUpdate(user); }
Example 16
Source Project: cacheonix-core File: SaveOrUpdateTest.java License: GNU Lesser General Public License v2.1 | 4 votes |
public void testSaveOrUpdateGot() { boolean instrumented = FieldInterceptionHelper.isInstrumented( new NumberedNode() ); Session s = openSession(); Transaction tx = s.beginTransaction(); NumberedNode root = new NumberedNode( "root" ); s.saveOrUpdate( root ); tx.commit(); s.close(); assertInsertCount( 1 ); assertUpdateCount( 0 ); clearCounts(); s = openSession(); tx = s.beginTransaction(); s.saveOrUpdate( root ); tx.commit(); s.close(); assertInsertCount( 0 ); assertUpdateCount( instrumented ? 0 : 1 ); s = openSession(); tx = s.beginTransaction(); root = ( NumberedNode ) s.get( NumberedNode.class, new Long( root.getId() ) ); Hibernate.initialize( root.getChildren() ); tx.commit(); s.close(); clearCounts(); s = openSession(); tx = s.beginTransaction(); NumberedNode child = new NumberedNode( "child" ); root.addChild( child ); s.saveOrUpdate( root ); assertTrue( s.contains( child ) ); tx.commit(); assertInsertCount( 1 ); assertUpdateCount( instrumented ? 0 : 1 ); tx = s.beginTransaction(); assertEquals( s.createCriteria( NumberedNode.class ) .setProjection( Projections.rowCount() ) .uniqueResult(), new Integer( 2 ) ); s.delete( root ); s.delete( child ); tx.commit(); s.close(); }
Example 17
Source Project: Knowage-Server File: RoleDAOHibImpl.java License: GNU Affero General Public License v3.0 | 4 votes |
/** * Associate a Data Set Category to the role * * @see it.eng.spagobi.commons.dao.IRoleDAO#insertRoleDataSetCategory(java.lang.Integer, java.lang.Integer) */ @Override public void insertRoleDataSetCategory(Integer roleId, Integer categoryId) throws EMFUserError { logger.debug("IN"); Session aSession = null; Transaction tx = null; try { aSession = getSession(); tx = aSession.beginTransaction(); SbiExtRoles hibRole = (SbiExtRoles) aSession.load(SbiExtRoles.class, roleId); SbiDomains category = (SbiDomains) aSession.load(SbiDomains.class, categoryId); Set<SbiDomains> dataSetCategories = hibRole.getSbiDataSetCategories(); if (dataSetCategories == null) { dataSetCategories = new HashSet<SbiDomains>(); } dataSetCategories.add(category); hibRole.setSbiDataSetCategories(dataSetCategories); aSession.saveOrUpdate(hibRole); aSession.flush(); updateSbiCommonInfo4Update(hibRole); tx.commit(); } catch (HibernateException he) { logException(he); if (tx != null) tx.rollback(); throw new EMFUserError(EMFErrorSeverity.ERROR, 100); } finally { if (aSession != null) { if (aSession.isOpen()) { aSession.close(); logger.debug("The [insertRoleDataSetCategory] occurs. Role cache will be cleaned."); this.clearCache(); } logger.debug("OUT"); } } }
Example 18
Source Project: cacheonix-core File: SaveOrUpdateTest.java License: GNU Lesser General Public License v2.1 | 4 votes |
public void testSaveOrUpdateDeepTreeWithGeneratedId() { boolean instrumented = FieldInterceptionHelper.isInstrumented( new NumberedNode() ); clearCounts(); Session s = openSession(); Transaction tx = s.beginTransaction(); NumberedNode root = new NumberedNode( "root" ); NumberedNode child = new NumberedNode( "child" ); NumberedNode grandchild = new NumberedNode( "grandchild" ); root.addChild( child ); child.addChild( grandchild ); s.saveOrUpdate( root ); tx.commit(); s.close(); assertInsertCount( 3 ); assertUpdateCount( 0 ); clearCounts(); child = ( NumberedNode ) root.getChildren().iterator().next(); grandchild = ( NumberedNode ) child.getChildren().iterator().next(); grandchild.setDescription( "the grand child" ); NumberedNode grandchild2 = new NumberedNode( "grandchild2" ); child.addChild( grandchild2 ); s = openSession(); tx = s.beginTransaction(); s.saveOrUpdate( root ); tx.commit(); s.close(); assertInsertCount( 1 ); assertUpdateCount( instrumented ? 1 : 3 ); clearCounts(); NumberedNode child2 = new NumberedNode( "child2" ); NumberedNode grandchild3 = new NumberedNode( "grandchild3" ); child2.addChild( grandchild3 ); root.addChild( child2 ); s = openSession(); tx = s.beginTransaction(); s.saveOrUpdate( root ); tx.commit(); s.close(); assertInsertCount( 2 ); assertUpdateCount( instrumented ? 0 : 4 ); clearCounts(); s = openSession(); tx = s.beginTransaction(); s.createQuery( "delete from NumberedNode where name like 'grand%'" ).executeUpdate(); s.createQuery( "delete from NumberedNode where name like 'child%'" ).executeUpdate(); s.createQuery( "delete from NumberedNode" ).executeUpdate(); tx.commit(); s.close(); }
Example 19
Source Project: modeldb File: LineageDAORdbImpl.java License: Apache License 2.0 | 4 votes |
private void saveOrUpdate(Session session, LineageEntry input, LineageEntry output) { session.saveOrUpdate(new LineageEntity(input, output)); }
Example 20
Source Project: modeldb File: BlobDAORdbImpl.java License: Apache License 2.0 | 4 votes |
private Map.Entry<String, String> getS3PathAndMultipartUploadId( Session session, String computeSha, String internalVersionedPath, DatasetBlob.ContentCase contentCase, boolean partNumberSpecified, S3KeyFunction initializeMultipart) throws ModelDBException { UploadStatusEntity uploadStatusEntity = getUploadStatusEntity(session, computeSha, contentCase); String uploadId; if (partNumberSpecified) { uploadId = uploadStatusEntity == null || uploadStatusEntity.getUploadId() == null || uploadStatusEntity.getUploadId().isEmpty() ? null : uploadStatusEntity.getUploadId(); String message = null; if (uploadId == null) { if (initializeMultipart == null) { message = "Multipart wasn't initialized"; } else { uploadId = initializeMultipart.apply(internalVersionedPath).orElse(null); if (uploadStatusEntity == null) { uploadStatusEntity = new UploadStatusEntity(); } uploadStatusEntity.setDataset_component_blob_id(computeSha); if (contentCase.equals(DatasetBlob.ContentCase.PATH)) { uploadStatusEntity.setComponent_blob_type( UploadStatusEntity.PATH_DATASET_COMPONENT_BLOB); } else { uploadStatusEntity.setComponent_blob_type(UploadStatusEntity.S3_DATASET_COMPONENT_BLOB); } } } if (message != null) { LOGGER.info(message); throw new ModelDBException(message, io.grpc.Status.Code.FAILED_PRECONDITION); } if (!Objects.equals(uploadId, uploadStatusEntity.getUploadId()) || uploadStatusEntity.isUploadCompleted()) { session.beginTransaction(); uploadStatusEntity.setUploadId(uploadId); uploadStatusEntity.setUploadCompleted(false); session.saveOrUpdate(uploadStatusEntity); session.getTransaction().commit(); } } else { uploadId = null; } return new AbstractMap.SimpleEntry<>(internalVersionedPath, uploadId); }