org.eclipse.persistence.mappings.ManyToManyMapping Java Examples
The following examples show how to use
org.eclipse.persistence.mappings.ManyToManyMapping.
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 File: PrefixSessionCustomizer.java From tomee with Apache License 2.0 | 6 votes |
@Override public void customize(final Session session) throws Exception { if (JPAThreadContext.infos.containsKey("properties")) { final String prefix = ((Properties) JPAThreadContext.infos.get("properties")).getProperty("openejb.jpa.table_prefix"); final List<DatabaseTable> tables = new ArrayList<DatabaseTable>(); for (final ClassDescriptor cd : session.getDescriptors().values()) { for (final DatabaseTable table : cd.getTables()) { update(prefix, tables, table); } for (final DatabaseMapping mapping : cd.getMappings()) { if (mapping instanceof ManyToManyMapping) { update(prefix, tables, ((ManyToManyMapping) mapping).getRelationTable()); } else if (mapping instanceof DirectCollectionMapping) { update(prefix, tables, ((DirectCollectionMapping) mapping).getReferenceTable()); } // TODO: else check we need to update something } } final Sequence sequence = session.getDatasourcePlatform().getDefaultSequence(); if (sequence instanceof TableSequence) { final TableSequence ts = ((TableSequence) sequence); ts.setName(prefix + ts.getName()); } } }
Example #2
Source File: AbstractJoinExpressionProvider.java From cuba with Apache License 2.0 | 5 votes |
@Override public Expression getJoinCriteriaExpression(DatabaseMapping mapping) { if (mapping.isOneToManyMapping()) { return processOneToManyMapping((OneToManyMapping)mapping); } else if (mapping.isOneToOneMapping()) { if (mapping.isManyToOneMapping()) { return processManyToOneMapping((ManyToOneMapping) mapping); } else { return processOneToOneMapping((OneToOneMapping) mapping); } } else if (mapping.isManyToManyMapping()) { return processManyToManyMapping((ManyToManyMapping) mapping); } return null; }
Example #3
Source File: SoftDeleteJoinExpressionProvider.java From cuba with Apache License 2.0 | 4 votes |
@Override protected Expression processManyToManyMapping(ManyToManyMapping mapping) { return null; }
Example #4
Source File: JPAMDefaultTableGenerator.java From jeddict with Apache License 2.0 | 4 votes |
/** * * @param baseDescriptor * @param intrinsicEntity defines the Entity Object that contains embedded * Object where Entity object will be intrinsicEntity and Embeddable object * will be descriptorManagedClass * @param intrinsicAttribute */ protected void postInitTableSchema(ClassDescriptor baseDescriptor, LinkedList<Entity> intrinsicEntity, LinkedList<Attribute> intrinsicAttribute) { DBRelationalDescriptor descriptor = (DBRelationalDescriptor) baseDescriptor; ManagedClass descriptorManagedClass = null; if (intrinsicEntity == null) { if (descriptor.getAccessor() instanceof EntitySpecAccessor) { intrinsicEntity = new LinkedList<>(); intrinsicAttribute = new LinkedList<>(); intrinsicEntity.offer(((EntitySpecAccessor) descriptor.getAccessor()).getEntity()); descriptorManagedClass = intrinsicEntity.peek(); } else { throw new IllegalStateException(descriptor.getAccessor() + " not supported"); } } else if (descriptor.getAccessor() instanceof EmbeddableSpecAccessor) { descriptorManagedClass = ((EmbeddableSpecAccessor) descriptor.getAccessor()).getEmbeddable(); } else if (descriptor.getAccessor() instanceof DefaultClassSpecAccessor) { // descriptorManagedClass = ((DefaultClassSpecAccessor) descriptor.getAccessor()).getDefaultClass(); } else { throw new IllegalStateException(descriptor.getAccessor() + " not supported"); } for (DatabaseMapping mapping : descriptor.getMappings()) { ManagedClass managedClass = descriptorManagedClass; Attribute managedAttribute = (Attribute) mapping.getProperty(Attribute.class); Boolean isInherited = (Boolean) mapping.getProperty(Inheritance.class); isInherited = isInherited == null ? false : isInherited; if (intrinsicAttribute.peek() == null) { intrinsicAttribute.offer(managedAttribute); } if(managedAttribute instanceof RelationAttribute && !((RelationAttribute)managedAttribute).isOwner()){ //skip non-owner } else if (descriptor.isChildDescriptor() && descriptor.getInheritancePolicy().getParentDescriptor().getMappingForAttributeName(mapping.getAttributeName()) != null) { // If we are an inheritance subclass, do nothing. That is, don't // generate mappings that will be generated by our parent, // otherwise the fields for that mapping will be generated n // times for the same table. } else if (mapping.isManyToManyMapping()) { buildRelationTableDefinition(managedClass, managedAttribute, intrinsicEntity, intrinsicAttribute, isInherited, (ManyToManyMapping) mapping, ((ManyToManyMapping) mapping).getRelationTableMechanism(), ((ManyToManyMapping) mapping).getListOrderField(), mapping.getContainerPolicy()); } else if (mapping.isDirectCollectionMapping()) { buildDirectCollectionTableDefinition(managedClass, managedAttribute, intrinsicEntity, intrinsicAttribute, isInherited, (DirectCollectionMapping) mapping, descriptor); } else if (mapping.isDirectToFieldMapping()) { Converter converter = ((DirectToFieldMapping) mapping).getConverter(); if (converter != null) { if (converter instanceof TypeConversionConverter) { resetFieldTypeForLOB((DirectToFieldMapping) mapping); } // uncomment on upgrade to eclipselink v2.7.2+ // if (converter instanceof SerializedObjectConverter) { // //serialized object mapping field should be BLOB/IMAGE // getFieldDefFromDBField(mapping.getField()).setType(((SerializedObjectConverter) converter).getSerializer().getType()); // } } } else if (mapping.isAggregateCollectionMapping()) { //need to figure out the target foreign key field and add it into the aggregate target table // if(managedAttribute instanceof ElementCollection || ((ElementCollection)managedAttribute).getConnectedClass()!=null){ // ClassDescriptor refDescriptor = mapping.getReferenceDescriptor(); // Attribute attribute = getManagedAttribute(refDescriptor, dbField, intrinsicAttribute);//TODO intrinsicAttribute nested path/attribute not set // // } createAggregateTargetTable(managedClass, managedAttribute, intrinsicEntity, intrinsicAttribute, isInherited, (AggregateCollectionMapping) mapping); } else if (mapping.isForeignReferenceMapping()) { if (mapping.isOneToOneMapping()) { RelationTableMechanism relationTableMechanism = ((OneToOneMapping) mapping).getRelationTableMechanism(); if (relationTableMechanism == null) { addForeignKeyFieldToSourceTargetTable(managedClass, managedAttribute, intrinsicEntity, intrinsicAttribute, isInherited, (OneToOneMapping) mapping); } else { buildRelationTableDefinition(managedClass, managedAttribute, intrinsicEntity, intrinsicAttribute, isInherited, (OneToOneMapping) mapping, relationTableMechanism, null, null); } } else if (mapping.isOneToManyMapping()) { addForeignKeyFieldToSourceTargetTable(managedClass, managedAttribute, intrinsicEntity, intrinsicAttribute, isInherited, (OneToManyMapping) mapping); TableDefinition targTblDef = getTableDefFromDBTable(((OneToManyMapping) mapping).getReferenceDescriptor().getDefaultTable());//TODO pass entity addFieldsForMappedKeyMapContainerPolicy(managedClass, managedAttribute, intrinsicEntity, intrinsicAttribute, isInherited, mapping.getContainerPolicy(), targTblDef); } } else if (mapping.isTransformationMapping()) { resetTransformedFieldType((TransformationMapping) mapping); } else if (mapping.isAggregateObjectMapping()) { postInitTableSchema(((AggregateObjectMapping) mapping).getReferenceDescriptor(), new LinkedList<>(intrinsicEntity), new LinkedList<>(intrinsicAttribute)); } intrinsicAttribute.clear(); } processAdditionalTablePkFields(intrinsicEntity, descriptor); intrinsicEntity.clear(); }
Example #5
Source File: AbstractJoinExpressionProvider.java From cuba with Apache License 2.0 | votes |
protected abstract Expression processManyToManyMapping(ManyToManyMapping mapping);