List of usage examples for org.hibernate.metadata ClassMetadata getIdentifier
@Deprecated
@SuppressWarnings({ "JavaDoc" })
Serializable getIdentifier(Object object) throws HibernateException;
From source file:org.openspaces.persistency.hibernate.CriteriaHibernateExternalDataSource.java
License:Open Source License
/** * Return pojo identifier/*ww w . j a va 2s .com*/ */ protected Object getId(Object template) { Object id = null; ClassMetadata classMetaData = getMetadata(template); if (classMetaData == null) //Unexpected class entity return null; if (template instanceof IGSEntry) { id = ((IGSEntry) template).getFieldValue(classMetaData.getIdentifierPropertyName()); } else { id = classMetaData.getIdentifier(template); } return id; }
From source file:org.openspaces.persistency.hibernate.StatelessHibernateExternalDataSource.java
License:Open Source License
protected boolean exists(BulkItem bulkItem, StatelessSession session) { Criteria criteria = null;//from w w w . j a va 2 s. c om switch (bulkItem.getOperation()) { case BulkItem.REMOVE: case BulkItem.WRITE: case BulkItem.UPDATE: Object entry = bulkItem.getItem(); criteria = session.createCriteria(entry.getClass().getName()); ClassMetadata classMetaData = getSessionFactory().getClassMetadata(entry.getClass()); criteria.add(Restrictions.idEq(classMetaData.getIdentifier(entry))); criteria.setProjection(Projections.rowCount()); return ((Number) criteria.uniqueResult()).intValue() > 0; case BulkItem.PARTIAL_UPDATE: criteria = session.createCriteria(bulkItem.getTypeName()); criteria.add(Restrictions.idEq(bulkItem.getIdPropertyValue())); criteria.setProjection(Projections.rowCount()); return ((Number) criteria.uniqueResult()).intValue() > 0; default: return false; } }
From source file:org.openspaces.persistency.hibernate.StatelessHibernateSpaceSynchronizationEndpoint.java
License:Open Source License
private boolean exists(DataSyncOperation dataSyncOperation, StatelessSession session) { Criteria criteria = null;/* w w w . j av a 2 s .c om*/ switch (dataSyncOperation.getDataSyncOperationType()) { case REMOVE: case WRITE: case UPDATE: if (!dataSyncOperation.supportsDataAsObject()) return false; Object entry = dataSyncOperation.getDataAsObject(); criteria = session.createCriteria(entry.getClass().getName()); ClassMetadata classMetaData = getSessionFactory().getClassMetadata(entry.getClass()); criteria.add(Restrictions.idEq(classMetaData.getIdentifier(entry))); criteria.setProjection(Projections.rowCount()); return ((Number) criteria.uniqueResult()).intValue() > 0; case PARTIAL_UPDATE: if (!dataSyncOperation.supportsGetTypeDescriptor()) return false; SpaceTypeDescriptor typeDescriptor = dataSyncOperation.getTypeDescriptor(); criteria = session.createCriteria(typeDescriptor.getTypeName()); criteria.add(Restrictions.idEq(typeDescriptor.getIdPropertyName())); criteria.setProjection(Projections.rowCount()); return ((Number) criteria.uniqueResult()).intValue() > 0; default: return false; } }
From source file:org.sakaiproject.genericdao.hibernate.HibernateGenericDao.java
License:Apache License
/** * Use hibernate metadata to get the id value *///from w w w. j av a 2 s . c o m protected Serializable baseGetIdValue(Object object) { Class<?> type = findClass(object); Serializable idValue = null; ClassMetadata classmeta = getSessionFactory().getClassMetadata(type); if (classmeta != null) { if (classmeta.hasIdentifierProperty()) { idValue = classmeta.getIdentifier(object); } } else { throw new IllegalArgumentException( "Could not get classmetadata for this object, it may not be persistent: " + object); } return idValue; }