public ForeignKey getForeignKey(ClassMapping target) { if (_fk == null && getValueMappedBy() != null) return getValueMappedByMapping().getForeignKey(target); if (target == null) return _fk; if (_fk == null && _cols.length == 0) return null; // always use least-derived joinable type for (ClassMapping sup = target; sup != null; sup = sup.getJoinablePCSuperclassMapping()) { if (sup == getTypeMetaData()) return _fk; target = sup; } synchronized (this) { if (_targetFKs != null) { Object cachedFK = _targetFKs.get(target); if (cachedFK != null) return (ForeignKey) cachedFK; } else _targetFKs = new HashMap(); ForeignKey newfk = (_join == JOIN_FORWARD) ? newForwardForeignKey(target) : newInverseForeignKey(target); _targetFKs.put(target, newfk); return newfk; } }
? newForwardForeignKey(target) : newInverseForeignKey(target); _targetFKs.put(target, newfk); return newfk;
? newForwardForeignKey(target) : newInverseForeignKey(target); _targetFKs.put(target, newfk); return newfk;
? newForwardForeignKey(target) : newInverseForeignKey(target); _targetFKs.put(target, newfk); return newfk;
? newForwardForeignKey(target) : newInverseForeignKey(target); _targetFKs.put(target, newfk); return newfk;