@Override public PersistentEntity getParentEntity() { Class superclass = this.javaClass.getSuperclass(); if( superclass != null ) { return context.getPersistentEntity(superclass.getName()); } return null; }
protected AbstractPersistenceEvent(final Datastore source, final Object entity) { super(source); MappingContext mappingContext = source.getMappingContext(); entityObject = mappingContext.getProxyHandler().unwrap(entity); this.entity = mappingContext.getPersistentEntity(entityObject.getClass().getName()); if(this.entity != null) { this.entityAccess = mappingContext.createEntityAccess(this.entity, entityObject); } else { this.entityAccess = null; } }
@Override public void convertArguments(PersistentEntity persistentEntity) { ConversionService conversionService = persistentEntity .getMappingContext().getConversionService(); String propertyName = this.propertyName; PersistentProperty<?> prop = persistentEntity .getPropertyByName(propertyName); Object[] arguments = this.arguments; convertArgumentsForProp(persistentEntity, prop, propertyName, arguments, conversionService); } }
protected void initForMappingContext(MappingContext mappingContext) { for (PersistentEntity persistentEntity : mappingContext.getPersistentEntities()) { storeDateCreatedAndLastUpdatedInfo(persistentEntity); } mappingContext.addMappingContextListener(this); }
private Serializable findInstanceId(Object value) { MappingContext ctx = entity.getMappingContext(); PersistentEntity pe = ctx.getPersistentEntity(value.getClass().getName()); return ctx.getEntityReflector(pe).getIdentifier(value); }
public boolean onPreInsert(PreInsertEvent hibernateEvent) { Object entity = hibernateEvent.getEntity(); Class type = Hibernate.getClass(entity); PersistentEntity persistentEntity = mappingContext.getPersistentEntity(type.getName()); AbstractPersistenceEvent grailsEvent; ModificationTrackingEntityAccess entityAccess = null; if(persistentEntity != null) { entityAccess = new ModificationTrackingEntityAccess(mappingContext.createEntityAccess(persistentEntity, entity)); grailsEvent = new org.grails.datastore.mapping.engine.event.PreInsertEvent(this.datastore, persistentEntity, entityAccess); } else { grailsEvent = new org.grails.datastore.mapping.engine.event.PreInsertEvent(this.datastore, entity); } publishEvent(hibernateEvent, grailsEvent); boolean cancelled = grailsEvent.isCancelled(); if(!cancelled && entityAccess != null) { synchronizeHibernateState(hibernateEvent, entityAccess); } return cancelled; }
PersistentEntity associatedEntity = context.getPersistentEntity(type.getName()); if (associatedEntity == null) { associatedEntity = context.addExternalPersistentEntity(type); associatedEntity.initialize(); associatedEntity = context.addPersistentEntity(type); associatedEntity.initialize(); PersistentEntity embeddedEntity = context.createEmbeddedEntity(type); embeddedEntity.initialize(); return embeddedEntity;
/** * Tries to obtain or create an associated entity. Note that if #canExpandMappingContext is set to false then this method may return null * * @param entity The main entity * @param context The context * @param propType The associated property type * @return The associated entity or null */ protected PersistentEntity getOrCreateAssociatedEntity(PersistentEntity entity, MappingContext context, Class propType) { PersistentEntity associatedEntity = context.getPersistentEntity(propType.getName()); if (associatedEntity == null) { if(canExpandMappingContext) { if (entity.isExternal()) { associatedEntity = context.addExternalPersistentEntity(propType); } else { associatedEntity = context.addPersistentEntity(propType); } } } else { if(!associatedEntity.isInitialized()) { associatedEntity.initialize(); } } return associatedEntity; }
public void setDatastore(AbstractHibernateDatastore datastore) { this.datastore = datastore; this.mappingContext = datastore.getMappingContext(); this.proxyHandler = mappingContext.getProxyHandler(); }
@Override public IdentityMapping getIdentifier() { if (identityMapping == null) { identityMapping = context.getMappingFactory().createIdentityMapping(this); } return identityMapping; } }
@Override public EntityAccess createEntityAccess(PersistentEntity entity, Object instance) { return getMappingContext().createEntityAccess(entity, instance); }
@PreDestroy public void destroy() throws Exception { FieldEntityAccess.clearReflectors(); final MetaClassRegistry registry = GroovySystem.getMetaClassRegistry(); for (PersistentEntity persistentEntity : getMappingContext().getPersistentEntities()) { final Class cls = persistentEntity.getJavaClass(); try { registry.removeMetaClass(cls); } catch (Exception e) { LOG.warn("There was an error shutting down GORM for entity ["+cls.getName()+"]: " + e.getMessage(), e); } } ClassPropertyFetcher.clearCache(); }
public boolean onPreUpdate(PreUpdateEvent hibernateEvent) { Object entity = hibernateEvent.getEntity(); Class type = Hibernate.getClass(entity); MappingContext mappingContext = datastore.getMappingContext(); PersistentEntity persistentEntity = mappingContext.getPersistentEntity(type.getName()); AbstractPersistenceEvent grailsEvent; ModificationTrackingEntityAccess entityAccess = null; if(persistentEntity != null) { entityAccess = new ModificationTrackingEntityAccess(mappingContext.createEntityAccess(persistentEntity, entity)); grailsEvent = new org.grails.datastore.mapping.engine.event.PreUpdateEvent(this.datastore, persistentEntity, entityAccess); } else { grailsEvent = new org.grails.datastore.mapping.engine.event.PreUpdateEvent(this.datastore, entity); } publishEvent(hibernateEvent, grailsEvent); boolean cancelled = grailsEvent.isCancelled(); if(!cancelled && entityAccess != null) { synchronizeHibernateState(hibernateEvent, entityAccess); } return cancelled; }
protected DomainEventListener(ConnectionSourcesProvider connectionSourcesProvider, final MappingContext mappingContext) { super(null); for (PersistentEntity entity : mappingContext.getPersistentEntities()) { createEventCaches(entity); } autowireEntities = connectionSourcesProvider.getConnectionSources().getDefaultConnectionSource().getSettings().isAutowire(); mappingContext.addMappingContextListener(this); }
public HibernatePersistentEntity(Class javaClass, final MappingContext context) { super(javaClass, context); this.classMapping = new AbstractClassMapping<Mapping>(this, context) { Mapping mappedForm = (Mapping) context.getMappingFactory().createMappedForm(HibernatePersistentEntity.this); @Override public PersistentEntity getEntity() { return HibernatePersistentEntity.this; } @Override public Mapping getMappedForm() { return mappedForm; } }; }
public AbstractCriteriaBuilder(final Class targetClass, QueryCreator queryCreator, final MappingContext mappingContext) { Assert.notNull(targetClass, "Argument [targetClass] cannot be null"); Assert.notNull(mappingContext, "Argument [session] cannot be null"); persistentEntity = mappingContext.getPersistentEntity( targetClass.getName()); if (persistentEntity == null) { throw new IllegalArgumentException("Class [" + targetClass.getName() + "] is not a persistent entity"); } this.targetClass = targetClass; this.queryCreator = queryCreator; }
@Override public void convertArguments(PersistentEntity persistentEntity) { ConversionService conversionService = persistentEntity .getMappingContext().getConversionService(); PersistentProperty<?> prop = persistentEntity .getPropertyByName(propertyName); convertArgumentsForProp(persistentEntity, prop, propertyName, arguments, conversionService); }
public DomainEventListener(final Datastore datastore) { super(datastore); for (PersistentEntity entity : datastore.getMappingContext().getPersistentEntities()) { createEventCaches(entity); } datastore.getMappingContext().addMappingContextListener(this); if(datastore instanceof ConnectionSourcesProvider) { autowireEntities = ((ConnectionSourcesProvider)datastore).getConnectionSources().getDefaultConnectionSource().getSettings().isAutowire(); } else { autowireEntities = false; } }
public HibernateEmbeddedPersistentEntity(Class type, MappingContext ctx) { super(type, ctx); this.classMapping = new ClassMapping<Mapping>() { Mapping mappedForm = (Mapping) context.getMappingFactory().createMappedForm(HibernateEmbeddedPersistentEntity.this); @Override public PersistentEntity getEntity() { return HibernateEmbeddedPersistentEntity.this; } @Override public Mapping getMappedForm() { return mappedForm; } @Override public IdentityMapping getIdentifier() { return null; } }; }
private PersistentEntity getPersistentEntity(Class javaClass, MappingContext context, ClassMapping classMapping) { if (classMapping != null) { return classMapping.getEntity(); } return context.getPersistentEntity(javaClass.getName()); }