public ForeignKeyMetadata getForeignKeyMetadata() { ForeignKeyMetaData internalFkmd = getInternal().getForeignKeyMetaData(); if (internalFkmd == null) { return null; } ForeignKeyMetadataImpl fkmd = new ForeignKeyMetadataImpl(internalFkmd); fkmd.parent = this; return fkmd; }
public ForeignKeyAction getDeleteAction() { ForeignKeyMetaData fkmd = getInternal().getForeignKeyMetaData(); if (fkmd != null) { org.datanucleus.metadata.ForeignKeyAction fk = fkmd.getDeleteAction(); if (fk == org.datanucleus.metadata.ForeignKeyAction.CASCADE) { return ForeignKeyAction.CASCADE; } else if (fk == org.datanucleus.metadata.ForeignKeyAction.DEFAULT) { return ForeignKeyAction.DEFAULT; } else if (fk == org.datanucleus.metadata.ForeignKeyAction.NONE) { return ForeignKeyAction.NONE; } else if (fk == org.datanucleus.metadata.ForeignKeyAction.NULL) { return ForeignKeyAction.NULL; } else if (fk == org.datanucleus.metadata.ForeignKeyAction.RESTRICT) { return ForeignKeyAction.RESTRICT; } } return ForeignKeyAction.UNSPECIFIED; }
if (joinmd.getForeignKeyMetaData() != null) str.append(getXMLForMetaData(joinmd.getForeignKeyMetaData(), prefix + indent, indent));
/** * Accessor for the expected foreign keys for this table. * @return The expected foreign keys. */ protected List<ForeignKey> getExpectedForeignKeys() { assertIsInitialized(); // Auto mode allows us to decide which FKs are needed as well as using what is in the users MetaData. boolean autoMode = false; if (storeMgr.getStringProperty(RDBMSPropertyNames.PROPERTY_RDBMS_CONSTRAINT_CREATE_MODE).equals("DataNucleus")) { autoMode = true; } // Add FK back to the primary table unless requested not to List<ForeignKey> foreignKeys = new ArrayList<>(); ForeignKeyMetaData fkmd = joinMetaData != null ? joinMetaData.getForeignKeyMetaData() : null; if (autoMode || (fkmd != null && fkmd.getDeleteAction() != ForeignKeyAction.NONE)) { ForeignKey fk = new ForeignKey(getIdMapping(), dba, primaryTable, fkmd != null && fkmd.isDeferred() ? true : false); if (fkmd != null && fkmd.getName() != null) { fk.setName(fkmd.getName()); } foreignKeys.add(0, fk); } return foreignKeys; }
/** * Convenience method to generate a ForeignKey from this join table to an owner table. * @param ownerTable The owner table * @param autoMode Whether we are in auto mode (where we generate the keys regardless of what the metadata says) * @return The ForeignKey */ protected ForeignKey getForeignKeyToOwner(DatastoreClass ownerTable, boolean autoMode) { ForeignKey fk = null; if (ownerTable != null) { // Take <foreign-key> from <join> ForeignKeyMetaData fkmd = null; if (mmd.getJoinMetaData() != null) { fkmd = mmd.getJoinMetaData().getForeignKeyMetaData(); } // TODO If in autoMode and there are multiple possible owner tables then don't create a FK if (fkmd != null || autoMode) { fk = new ForeignKey(ownerMapping, dba, ownerTable, true); fk.setForMetaData(fkmd); } } return fk; }
cmd.getInheritanceMetaData().getJoinMetaData().getForeignKeyMetaData() : null; if (supertable != null && (autoMode || (idFkmd != null && idFkmd.getDeleteAction() != ForeignKeyAction.NONE)))
public JoinMetadata setDeleteAction(ForeignKeyAction fk) { ForeignKeyMetaData fkmd = getInternal().getForeignKeyMetaData(); if (fk == ForeignKeyAction.CASCADE) { fkmd.setDeleteAction(org.datanucleus.metadata.ForeignKeyAction.CASCADE); } else if (fk == ForeignKeyAction.DEFAULT) { fkmd.setDeleteAction(org.datanucleus.metadata.ForeignKeyAction.DEFAULT); } else if (fk == ForeignKeyAction.NONE) { fkmd.setDeleteAction(org.datanucleus.metadata.ForeignKeyAction.NONE); } else if (fk == ForeignKeyAction.NULL) { fkmd.setDeleteAction(org.datanucleus.metadata.ForeignKeyAction.NULL); } else if (fk == ForeignKeyAction.RESTRICT) { fkmd.setDeleteAction(org.datanucleus.metadata.ForeignKeyAction.RESTRICT); } return this; }
if (mmd.getJoinMetaData() != null) fkmd = mmd.getJoinMetaData().getForeignKeyMetaData();
ForeignKeyMetaData joinFkmd = joinmd.getForeignKeyMetaData(); if (joinFkmd == null)
tableName = metaData.getJoinMetaData().getTable(); ColumnMetaData[] primaryKeyColumnMetaData = metaData.getJoinMetaData().getPrimaryKeyMetaData().getColumnMetaData(); ColumnMetaData[] foreignKeyColumnMetaData = metaData.getJoinMetaData().getForeignKeyMetaData().getColumnMetaData(); idColumnMapping = new HashMap<>(primaryKeyColumnMetaData.length); for (int i = 0; i < foreignKeyColumnMetaData.length; i++) {
tableName = metaData.getJoinMetaData().getTable(); ColumnMetaData[] primaryKeyColumnMetaData = metaData.getJoinMetaData().getPrimaryKeyMetaData().getColumnMetaData(); ColumnMetaData[] foreignKeyColumnMetaData = metaData.getJoinMetaData().getForeignKeyMetaData().getColumnMetaData(); idColumnMapping = new HashMap<>(primaryKeyColumnMetaData.length); for (int i = 0; i < foreignKeyColumnMetaData.length; i++) {
tableName = metaData.getJoinMetaData().getTable(); ColumnMetaData[] primaryKeyColumnMetaData = metaData.getJoinMetaData().getPrimaryKeyMetaData().getColumnMetaData(); ColumnMetaData[] foreignKeyColumnMetaData = metaData.getJoinMetaData().getForeignKeyMetaData().getColumnMetaData(); idColumnMapping = new HashMap<>(primaryKeyColumnMetaData.length); for (int i = 0; i < foreignKeyColumnMetaData.length; i++) {
ForeignKeyMetaData joinFkmd = joinmd.getForeignKeyMetaData(); if (joinFkmd == null)
if (mmd.getJoinMetaData() != null) fkmd = mmd.getJoinMetaData().getForeignKeyMetaData();