List of usage examples for org.hibernate.mapping Property setPropertyAccessorName
public void setPropertyAccessorName(String string)
From source file:com.manydesigns.portofino.persistence.hibernate.HibernateConfig.java
License:Open Source License
protected void createPKSingle(Mappings mappings, com.manydesigns.portofino.model.database.Table mdTable, String pkName, RootClass clazz, Table tab, List<com.manydesigns.portofino.model.database.Column> columnPKList) { PrimaryKeyColumn pkcol = mdTable.getPrimaryKey().getPrimaryKeyColumns().get(0); com.manydesigns.portofino.model.database.Column column = columnPKList.get(0); final PrimaryKey primaryKey = new PrimaryKey(); primaryKey.setName(pkName);// w w w . j a va 2 s.c o m primaryKey.setTable(tab); tab.setPrimaryKey(primaryKey); Column col = createColumn(mappings, tab, column); if (col == null) { // TODO PAOLO: se la PK non e' buona, tutta la tabella dovrebbe saltare logger.error("Skipping primary key"); return; } SimpleValue id = (SimpleValue) col.getValue(); //Make the defaults explicit. See section 5.1.4.5. Assigned identifiers in the Hibernate reference //(http://docs.jboss.org/hibernate/core/3.3/reference/en/html/mapping.html) id.setIdentifierGeneratorStrategy("assigned"); id.setNullValue("undefined"); tab.getPrimaryKey().addColumn(col); Property prop = createProperty(column, id); clazz.addProperty(prop); prop.setPropertyAccessorName(mappings.getDefaultAccess()); //PropertyGeneration generation = PropertyGeneration.parse(null); //prop.setGeneration(generation); prop.setInsertable(false); prop.setUpdateable(false); Generator generator = pkcol.getGenerator(); setPKColumnGenerator(mappings, clazz, tab, column, id, generator); tab.setIdentifierValue(id); clazz.setIdentifier(id); clazz.setIdentifierProperty(prop); clazz.setDiscriminatorValue(mdTable.getQualifiedName()); }
From source file:org.babyfish.hibernate.cfg.Configuration.java
License:Open Source License
private void processPersistentClasses() { Iterator<PersistentClass> classMappings = this.getClassMappings(); while (classMappings.hasNext()) { //TODO: please iterate its subclasses. PersistentClass persistentClass = classMappings.next(); Class<?> mappedClass = persistentClass.getMappedClass(); ObjectModelFactoryProvider provider = Metadatas.getObjectModelFactoryProvider(mappedClass); if (provider == null) { if (mappedClass.isAnnotationPresent(JPAObjectModelInstrument.class)) { throw new IllegalProgramException(LAZY_RESOURCE.get().missInstrument(mappedClass, JPAObjectModelInstrument.class, INSTRUMENT_EXPECTED_POM_SECTION)); }//from w w w. j a v a 2s.c o m } else { if (!(provider instanceof HibernateObjectModelFactoryProvider)) { throw new IllegalProgramException( LAZY_RESOURCE.get().requiredHibernateObjectModelFactoryProvider(mappedClass, HibernateObjectModelFactoryProvider.class)); } HibernateObjectModelMetadata metadata = HibernateMetadatas.of(mappedClass); for (org.babyfish.model.metadata.Property property : metadata.getDeclaredProperties().values()) { JPAProperty jpaProperty = (JPAProperty) property; if (jpaProperty instanceof AssociationProperty) { AssociationProperty associationProperty = (AssociationProperty) jpaProperty; if (associationProperty.getCovarianceProperty() != null) { continue; } } PropertyInfo ownerProperty = jpaProperty.getOwnerProperty(); if (ownerProperty == null) { continue; } Property mappingProperty = persistentClass.getProperty(ownerProperty.getName()); mappingProperty.setPropertyAccessorName(EntityPropertyAccessor.class.getName()); Value value = mappingProperty.getValue(); if (property instanceof AssociationProperty) { JPAAssociationProperty jpaAssociationProperty = (JPAAssociationProperty) property; Class<?> standardReturnType = jpaAssociationProperty.getStandardReturnClass(); /* * (1) Don't use jpaAssocationProperty.getHibernateProperty(). * This is org.hiberante.mapping.Property, that is org.hibernate.tuple.Property * * (2) Don't invoke property.getType() or property.getValue().getType() * that will cause the creating of original collection-type before the replacement. */ if (jpaAssociationProperty.getCovarianceProperty() == null) { if (standardReturnType == NavigableMap.class) { replaceUserCollectionType(mappingProperty, org.hibernate.mapping.Map.class, MANavigableMapType.class); } else if (standardReturnType == XOrderedMap.class) { replaceUserCollectionType(mappingProperty, org.hibernate.mapping.Map.class, MAOrderedMapType.class); } else if (standardReturnType == Map.class) { replaceUserCollectionType(mappingProperty, org.hibernate.mapping.Map.class, MAOrderedMapType.class); } else if (standardReturnType == NavigableSet.class) { replaceUserCollectionType(mappingProperty, org.hibernate.mapping.Set.class, MANavigableSetType.class); } else if (standardReturnType == XOrderedSet.class) { replaceUserCollectionType(mappingProperty, org.hibernate.mapping.Set.class, MAOrderedSetType.class); } else if (standardReturnType == Set.class) { replaceUserCollectionType(mappingProperty, org.hibernate.mapping.Set.class, MAOrderedSetType.class); } else if (standardReturnType == List.class) { if (org.hibernate.mapping.Bag.class .isAssignableFrom(mappingProperty.getValue().getClass())) { throw new MappingException( "In ObjectModel4ORM, Bag proeprty must be declared as java.util.Collection(not java.util.List)"); } replaceUserCollectionType(mappingProperty, org.hibernate.mapping.List.class, MAListType.class); } if (standardReturnType == Collection.class) { replaceUserCollectionType(mappingProperty, org.hibernate.mapping.Bag.class, MAOrderedSetType.class); } if (value instanceof org.hibernate.mapping.Collection) { org.hibernate.mapping.Collection collection = (org.hibernate.mapping.Collection) value; collection.setTypeParameters(new MACollectionProperties(jpaAssociationProperty, collection.getTypeParameters())); } if (jpaAssociationProperty.getOwnerIndexProperty() != null) { persistentClass .getProperty(jpaAssociationProperty.getOwnerIndexProperty().getName()) .setPropertyAccessorName(EntityPropertyAccessor.class.getName()); } if (jpaAssociationProperty.getOwnerKeyProperty() != null) { persistentClass.getProperty(jpaAssociationProperty.getOwnerKeyProperty().getName()) .setPropertyAccessorName(EntityPropertyAccessor.class.getName()); } } } } } } }
From source file:org.codehaus.groovy.grails.orm.hibernate.cfg.AbstractGrailsDomainBinder.java
License:Apache License
/** * Binds a property to Hibernate runtime meta model. Deals with cascade strategy based on the Grails domain model * * @param grailsProperty The grails property instance * @param prop The Hibernate property * @param mappings The Hibernate mappings *//*from w w w . j a v a 2s . c om*/ protected void bindProperty(GrailsDomainClassProperty grailsProperty, Property prop, Mappings mappings) { // set the property name prop.setName(grailsProperty.getName()); if (isBidirectionalManyToOneWithListMapping(grailsProperty, prop)) { prop.setInsertable(false); prop.setUpdateable(false); } else { prop.setInsertable(getInsertableness(grailsProperty)); prop.setUpdateable(getUpdateableness(grailsProperty)); } prop.setPropertyAccessorName(mappings.getDefaultAccess()); prop.setOptional(grailsProperty.isOptional()); setCascadeBehaviour(grailsProperty, prop); // lazy to true boolean isLazyable = grailsProperty.isOneToOne() || grailsProperty.isManyToOne() || grailsProperty.isEmbedded() || grailsProperty.isPersistent() && !grailsProperty.isAssociation() && !grailsProperty.isIdentity(); if (isLazyable) { final boolean isLazy = getLaziness(grailsProperty); prop.setLazy(isLazy); if (isLazy && (grailsProperty.isManyToOne() || grailsProperty.isOneToOne())) { handleLazyProxy(grailsProperty.getDomainClass(), grailsProperty); } } }
From source file:org.codehaus.groovy.grails.orm.hibernate.cfg.GrailsDomainBinder.java
License:Apache License
/** * Binds a property to Hibernate runtime meta model. Deals with cascade strategy based on the Grails domain model * * @param grailsProperty The grails property instance * @param prop The Hibernate property * @param mappings The Hibernate mappings *//*ww w. ja va2 s .com*/ private static void bindProperty(GrailsDomainClassProperty grailsProperty, Property prop, Mappings mappings) { // set the property name prop.setName(grailsProperty.getName()); if (isBidirectionalManyToOneWithListMapping(grailsProperty, prop)) { prop.setInsertable(false); prop.setUpdateable(false); } else { prop.setInsertable(getInsertableness(grailsProperty)); prop.setUpdateable(getUpdateableness(grailsProperty)); } prop.setPropertyAccessorName(mappings.getDefaultAccess()); prop.setOptional(grailsProperty.isOptional()); setCascadeBehaviour(grailsProperty, prop); // lazy to true boolean isLazyable = grailsProperty.isOneToOne() || grailsProperty.isManyToOne() || grailsProperty.isEmbedded() || grailsProperty.isPersistent() && !grailsProperty.isAssociation() && !grailsProperty.isIdentity(); if (isLazyable) { final boolean isLazy = getLaziness(grailsProperty); prop.setLazy(isLazy); if (isLazy && (grailsProperty.isManyToOne() || grailsProperty.isOneToOne())) { HibernatePluginSupport.handleLazyProxy(grailsProperty.getDomainClass(), grailsProperty); } } }
From source file:org.eclipse.emf.teneo.hibernate.HbDataStore.java
License:Open Source License
/** * Extra lazy mapping for lists needs a real property for the list index and * a real inverse for the other side as well. * //ww w . j av a2s . c o m * This method iterates over all associations and adds an inverse for the * list and set mappings. */ protected void addExtraLazyInverseProperties() { final Map<String, PersistentClass> persistentClasses = new HashMap<String, PersistentClass>(); for (Iterator<?> pcs = getClassMappings(); pcs.hasNext();) { final PersistentClass pc = (PersistentClass) pcs.next(); if (isClassOrSuperClassEAVMapped(pc)) { continue; } persistentClasses.put(pc.getEntityName(), pc); } for (Iterator<?> pcs = getClassMappings(); pcs.hasNext();) { final PersistentClass pc = (PersistentClass) pcs.next(); // copy to prevent concurrent modification final Iterator<?> propIt = pc.getPropertyIterator(); final List<Property> props = new ArrayList<Property>(); while (propIt.hasNext()) { final Property prop = (Property) propIt.next(); props.add(prop); } for (Property prop : props) { EClass eClass = null; if (pc.getMetaAttribute(HbMapperConstants.FEATUREMAP_META) == null) { if (pc.getEntityName() != null) { eClass = getEntityNameStrategy().toEClass(pc.getEntityName()); } else { eClass = EModelResolver.instance().getEClass(pc.getMappedClass()); } } final EStructuralFeature ef = eClass == null ? null : StoreUtil.getEStructuralFeature(eClass, prop.getName()); if (ef != null && ef instanceof EReference && prop.getValue() instanceof Collection) { final Collection collection = (Collection) prop.getValue(); final EReference eReference = (EReference) ef; // only work for extra lazy if (!collection.isExtraLazy()) { continue; } final Value elementValue = collection.getElement(); final PersistentClass elementPC; if (elementValue instanceof OneToMany) { final OneToMany oneToMany = (OneToMany) elementValue; elementPC = oneToMany.getAssociatedClass(); } else if (elementValue instanceof ManyToOne) { final ManyToOne mto = (ManyToOne) elementValue; elementPC = persistentClasses.get(mto.getReferencedEntityName()); } else { continue; } if (isClassOrSuperClassEAVMapped(elementPC)) { continue; } collection.setInverse(true); // and add an eopposite if (eReference.getEOpposite() == null) { final Table collectionTable = collection.getCollectionTable(); if (isClassOrSuperClassEAVMapped(elementPC)) { continue; } final Property inverseRefProperty = new Property(); inverseRefProperty.setName(StoreUtil.getExtraLazyInversePropertyName(ef)); final Map<Object, Object> metas = new HashMap<Object, Object>(); final MetaAttribute metaAttribute = new MetaAttribute( HbConstants.SYNTHETIC_PROPERTY_INDICATOR); metaAttribute.addValue("true"); metas.put(HbConstants.SYNTHETIC_PROPERTY_INDICATOR, metaAttribute); inverseRefProperty.setMetaAttributes(metas); inverseRefProperty.setNodeName(inverseRefProperty.getName()); inverseRefProperty.setPropertyAccessorName(SyntheticPropertyHandler.class.getName()); inverseRefProperty.setLazy(false); final ManyToOne mto = new ManyToOne(getMappings(), collectionTable); mto.setReferencedEntityName(pc.getEntityName()); mto.setLazy(false); mto.setFetchMode(FetchMode.SELECT); inverseRefProperty.setValue(mto); final Iterator<?> it = collection.getKey().getColumnIterator(); while (it.hasNext()) { final Column originalColumn = (Column) it.next(); // final Column newColumn = new // Column(originalColumn.getName()); mto.addColumn(originalColumn); } mto.createForeignKey(); // now determine if a join should be created if (collectionTable.getName().equalsIgnoreCase(elementPC.getTable().getName())) { elementPC.addProperty(inverseRefProperty); } else { // create a join final Join join = new Join(); join.setPersistentClass(elementPC); join.setTable(collectionTable); join.addProperty(inverseRefProperty); final ManyToOne keyValue = new ManyToOne(getMappings(), collectionTable); join.setKey(keyValue); @SuppressWarnings("unchecked") final Iterator<Column> keyColumns = collection.getElement().getColumnIterator(); while (keyColumns.hasNext()) { keyValue.addColumn(keyColumns.next()); } keyValue.setReferencedEntityName(elementPC.getEntityName()); keyValue.setTable(collectionTable); keyValue.createForeignKey(); elementPC.addJoin(join); } } // add an opposite index if (collection.isIndexed() && !collection.isMap()) { Table collectionTable = collection.getCollectionTable(); IndexedCollection indexedCollection = (IndexedCollection) collection; final Column column = (Column) indexedCollection.getIndex().getColumnIterator().next(); final Property indexProperty = new Property(); indexProperty.setName(StoreUtil.getExtraLazyInverseIndexPropertyName(ef)); final Map<Object, Object> metas = new HashMap<Object, Object>(); final MetaAttribute metaAttribute = new MetaAttribute( HbConstants.SYNTHETIC_PROPERTY_INDICATOR); metaAttribute.addValue("true"); metas.put(HbConstants.SYNTHETIC_PROPERTY_INDICATOR, metaAttribute); indexProperty.setMetaAttributes(metas); indexProperty.setNodeName(indexProperty.getName()); indexProperty.setPropertyAccessorName(SyntheticPropertyHandler.class.getName()); // always make this nullable, nullability is controlled // by the main property indexProperty.setOptional(true); Join join = null; @SuppressWarnings("unchecked") final Iterator<Join> it = (Iterator<Join>) elementPC.getJoinIterator(); while (it.hasNext()) { final Join foundJoin = it.next(); if (foundJoin.getTable().getName().equalsIgnoreCase(collectionTable.getName())) { join = foundJoin; collectionTable = join.getTable(); break; } } final SimpleValue sv = new SimpleValue(getMappings(), indexedCollection.getIndex().getTable()); sv.setTypeName("integer"); // final Column svColumn = new Column(column.getName()); sv.addColumn(column); // checkColumnExists(collectionTable, // svColumn)); indexProperty.setValue(sv); if (join != null) { join.addProperty(indexProperty); } else { elementPC.addProperty(indexProperty); } } } } } }
From source file:org.eclipse.emf.teneo.hibernate.HbDataStore.java
License:Open Source License
protected void addContainerMappingToPC(PersistentClass pc) { if (log.isDebugEnabled()) { log.debug("Adding eContainer and econtainerfeatureid properties to " + pc.getClassName()); }//from w w w . j a v a2s . c o m final EContainerFeaturePersistenceStrategy featurePersistenceStrategy = getPersistenceOptions() .getEContainerFeaturePersistenceStrategy(); final Property eContainer = new Property(); eContainer.setName(HbConstants.PROPERTY_ECONTAINER); eContainer.setMetaAttributes(new HashMap<Object, Object>()); eContainer.setNodeName(eContainer.getName()); eContainer.setPropertyAccessorName(EContainerAccessor.class.getName()); final SimpleValue sv = new SimpleValue(getMappings(), pc.getTable()); sv.setTypeName(EContainerUserType.class.getName()); final Column eccColumn = new Column(getPersistenceOptions().getSQLColumnNamePrefix() + getPersistenceOptions().getEContainerClassColumn()); sv.addColumn(checkColumnExists(pc.getTable(), eccColumn)); final Column ecColumn = new Column( getPersistenceOptions().getSQLColumnNamePrefix() + getPersistenceOptions().getEContainerColumn()); sv.addColumn(checkColumnExists(pc.getTable(), ecColumn)); eContainer.setValue(sv); pc.addProperty(eContainer); if (featurePersistenceStrategy.equals(EContainerFeaturePersistenceStrategy.FEATUREID) || featurePersistenceStrategy.equals(EContainerFeaturePersistenceStrategy.BOTH)) { final Property ecFID = new Property(); ecFID.setName(HbConstants.PROPERTY_ECONTAINER_FEATURE_ID); ecFID.setMetaAttributes(new HashMap<Object, Object>()); ecFID.setNodeName(ecFID.getName()); ecFID.setPropertyAccessorName(EContainerFeatureIDAccessor.class.getName()); final SimpleValue svfid = new SimpleValue(getMappings(), pc.getTable()); svfid.setTypeName("integer"); final Column ecfColumn = new Column( getPersistenceOptions().getSQLColumnNamePrefix() + HbConstants.COLUMN_ECONTAINER_FEATUREID); svfid.addColumn(checkColumnExists(pc.getTable(), ecfColumn)); ecFID.setValue(svfid); pc.addProperty(ecFID); } if (featurePersistenceStrategy.equals(EContainerFeaturePersistenceStrategy.FEATURENAME) || featurePersistenceStrategy.equals(EContainerFeaturePersistenceStrategy.BOTH)) { final Property ecFID = new Property(); ecFID.setName(HbConstants.PROPERTY_ECONTAINER_FEATURE_NAME); ecFID.setMetaAttributes(new HashMap<Object, Object>()); ecFID.setNodeName(ecFID.getName()); ecFID.setPropertyAccessorName(NewEContainerFeatureIDPropertyHandler.class.getName()); final SimpleValue svfid = new SimpleValue(getMappings(), pc.getTable()); svfid.setTypeName(EContainerFeatureIDUserType.class.getName()); final Column ecfColumn = new Column(getPersistenceOptions().getSQLColumnNamePrefix() + getPersistenceOptions().getEContainerFeatureNameColumn()); ecfColumn.setLength(getEContainerFeatureNameColumnLength()); svfid.addColumn(checkColumnExists(pc.getTable(), ecfColumn)); ecFID.setValue(svfid); pc.addProperty(ecFID); } }
From source file:org.grails.orm.hibernate.cfg.AbstractGrailsDomainBinder.java
License:Apache License
/** * Binds a property to Hibernate runtime meta model. Deals with cascade strategy based on the Grails domain model * * @param grailsProperty The grails property instance * @param prop The Hibernate property * @param mappings The Hibernate mappings */// w w w. ja va2s .c om protected void bindProperty(PersistentProperty grailsProperty, Property prop, Mappings mappings) { // set the property name prop.setName(grailsProperty.getName()); if (isBidirectionalManyToOneWithListMapping(grailsProperty, prop)) { prop.setInsertable(false); prop.setUpdateable(false); } else { prop.setInsertable(getInsertableness(grailsProperty)); prop.setUpdateable(getUpdateableness(grailsProperty)); } prop.setPropertyAccessorName(mappings.getDefaultAccess()); prop.setOptional(grailsProperty.isNullable()); setCascadeBehaviour(grailsProperty, prop); // lazy to true final boolean isToOne = grailsProperty instanceof ToOne; boolean isLazyable = isToOne || !(grailsProperty instanceof Association) && !grailsProperty.equals(grailsProperty.getOwner().getIdentity()); if (isLazyable) { final boolean isLazy = getLaziness(grailsProperty); prop.setLazy(isLazy); if (isLazy && isToOne) { handleLazyProxy(grailsProperty.getOwner(), grailsProperty); } } }
From source file:org.grails.orm.hibernate.cfg.GrailsDomainBinder.java
License:Apache License
/** * Binds a property to Hibernate runtime meta model. Deals with cascade strategy based on the Grails domain model * * @param grailsProperty The grails property instance * @param prop The Hibernate property * @param mappings The Hibernate mappings *//*from w ww .j a v a 2s . c o m*/ protected void bindProperty(PersistentProperty grailsProperty, Property prop, InFlightMetadataCollector mappings) { // set the property name prop.setName(grailsProperty.getName()); if (isBidirectionalManyToOneWithListMapping(grailsProperty, prop)) { prop.setInsertable(false); prop.setUpdateable(false); } else { prop.setInsertable(getInsertableness(grailsProperty)); prop.setUpdateable(getUpdateableness(grailsProperty)); } AccessType accessType = AccessType .getAccessStrategy(grailsProperty.getMapping().getMappedForm().getAccessType()); prop.setPropertyAccessorName(accessType.getType()); prop.setOptional(grailsProperty.isNullable()); setCascadeBehaviour(grailsProperty, prop); // lazy to true final boolean isToOne = grailsProperty instanceof ToOne; PersistentEntity propertyOwner = grailsProperty.getOwner(); boolean isLazyable = isToOne || !(grailsProperty instanceof Association) && !grailsProperty.equals(propertyOwner.getIdentity()); if (isLazyable) { final boolean isLazy = getLaziness(grailsProperty); prop.setLazy(isLazy); if (isLazy && isToOne && !(PersistentAttributeInterceptable.class.isAssignableFrom(propertyOwner.getJavaClass()))) { handleLazyProxy(propertyOwner, grailsProperty); } } }