org.datanucleus.ExecutionContext.getMetaDataManager()方法的使用及代码示例

x33g5p2x  于2022-01-19 转载在 其他  
字(14.5k)|赞(0)|评价(0)|浏览(101)

本文整理了Java中org.datanucleus.ExecutionContext.getMetaDataManager()方法的一些代码示例,展示了ExecutionContext.getMetaDataManager()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ExecutionContext.getMetaDataManager()方法的具体详情如下:
包路径:org.datanucleus.ExecutionContext
类名称:ExecutionContext
方法名:getMetaDataManager

ExecutionContext.getMetaDataManager介绍

暂无

代码示例

代码示例来源:origin: org.datanucleus/datanucleus-ldap

protected RelationByHierarchyStrategy(StoreManager storeMgr, ObjectProvider op, AbstractMemberMetaData mmd, Attributes attributes)
{
  super(op, mmd, attributes);
  this.fieldNumber = mmd.getAbsoluteFieldNumber();
  this.storeMgr = storeMgr;
  this.clr = ec.getClassLoaderResolver();
  this.effectiveClassMetaData = LDAPUtils.getEffectiveClassMetaData(mmd, ec.getMetaDataManager());
  this.isFieldHierarchicalMapped = isChildOfHierarchicalMapping(mmd, ec.getMetaDataManager());
  this.isFieldParentOfHierarchicalMapping = isParentOfHierarchicalMapping(mmd, ec.getMetaDataManager());
}

代码示例来源:origin: org.datanucleus/datanucleus-rdbms

/**
 * Populate a map with the declared fields of the result class and super classes.
 * @param cls the class to find the declared fields and populate the map
 */
private void populateDeclaredFieldsForUserType(Class cls)
{
  Field[] declaredFields = cls.getDeclaredFields();
  for (Field field : declaredFields)
  {
    if (!field.isSynthetic() && resultClassFieldsByName.put(field.getName().toUpperCase(), field) != null && 
      !field.getName().startsWith(ec.getMetaDataManager().getEnhancedMethodNamePrefix()))
    {
      throw new NucleusUserException(Localiser.msg("021210", field.getName()));
    }
  }
  if (cls.getSuperclass() != null)
  {
    populateDeclaredFieldsForUserType(cls.getSuperclass());
  }
}

代码示例来源:origin: org.datanucleus/datanucleus-ldap

protected RelationByAttributeStrategy(StoreManager storeMgr, ObjectProvider sm, AbstractMemberMetaData mmd, Attributes attributes)
{
  super(sm, mmd, attributes);
  this.fieldNumber = mmd.getAbsoluteFieldNumber();
  this.storeMgr = storeMgr;
  this.clr = ec.getClassLoaderResolver();
  this.effectiveClassMetaData = LDAPUtils.getEffectiveClassMetaData(mmd, ec.getMetaDataManager());
  this.mappingMetaData = new RelationByAttributeMetaData(mmd, ec.getMetaDataManager());
}

代码示例来源:origin: org.datanucleus/datanucleus-api-jdo

/**
 * Accessor for the generic compilation that this criteria query equates to.
 * @return The generic compilation
 */
public QueryCompilation getCompilation()
{
  if (compilation == null)
  {
    // Not yet compiled, so compile it
    compilation = compile(ec.getMetaDataManager(), ec.getClassLoaderResolver());
  }
  return compilation;
}

代码示例来源:origin: org.datanucleus/datanucleus-hbase

protected AbstractClassMetaData getCandidateClassMetaData()
{
  AbstractClassMetaData cmd = ec.getMetaDataManager().getMetaDataForClass(candidateClass, clr);
  if (candidateClass.isInterface())
  {
    // Query of interface
    String[] impls = ec.getMetaDataManager().getClassesImplementingInterface(candidateClass.getName(), clr);
    if (impls.length == 1 && cmd.isImplementationOfPersistentDefinition())
    {
      // Only the generated implementation, so just use its metadata
    }
    else
    {
      // Use metadata for the persistent interface
      cmd = ec.getMetaDataManager().getMetaDataForInterface(candidateClass, clr);
      if (cmd == null)
      {
        throw new NucleusUserException("Attempting to query an interface yet it is not declared 'persistent'." +
          " Define the interface in metadata as being persistent to perform this operation, and make sure" +
          " any implementations use the same identity and identity member(s)");
      }
    }
  }
  return cmd;
}

代码示例来源:origin: org.datanucleus/datanucleus-mongodb

protected AbstractClassMetaData getCandidateClassMetaData()
{
  AbstractClassMetaData cmd = ec.getMetaDataManager().getMetaDataForClass(candidateClass, clr);
  if (candidateClass.isInterface())
  {
    // Query of interface
    String[] impls = ec.getMetaDataManager().getClassesImplementingInterface(candidateClass.getName(), clr);
    if (impls.length == 1 && cmd.isImplementationOfPersistentDefinition())
    {
      // Only the generated implementation, so just use its metadata
    }
    else
    {
      // Use metadata for the persistent interface
      cmd = ec.getMetaDataManager().getMetaDataForInterface(candidateClass, clr);
      if (cmd == null)
      {
        throw new NucleusUserException("Attempting to query an interface yet it is not declared 'persistent'." +
          " Define the interface in metadata as being persistent to perform this operation, and make sure" +
          " any implementations use the same identity and identity member(s)");
      }
    }
  }
  return cmd;
}

代码示例来源:origin: org.datanucleus/datanucleus-hbase

protected AbstractClassMetaData getCandidateClassMetaData()
{
  AbstractClassMetaData cmd = ec.getMetaDataManager().getMetaDataForClass(candidateClass, clr);
  if (candidateClass.isInterface())
  {
    // Query of interface
    String[] impls = ec.getMetaDataManager().getClassesImplementingInterface(candidateClass.getName(), clr);
    if (impls.length == 1 && cmd.isImplementationOfPersistentDefinition())
    {
      // Only the generated implementation, so just use its metadata
    }
    else
    {
      // Use metadata for the persistent interface
      cmd = ec.getMetaDataManager().getMetaDataForInterface(candidateClass, clr);
      if (cmd == null)
      {
        throw new NucleusUserException("Attempting to query an interface yet it is not declared 'persistent'." +
          " Define the interface in metadata as being persistent to perform this operation, and make sure" +
          " any implementations use the same identity and identity member(s)");
      }
    }
  }
  return cmd;
}

代码示例来源:origin: org.datanucleus/datanucleus-ldap

protected EmbeddedMappingStrategy(StoreManager storeMgr, ObjectProvider op, AbstractMemberMetaData mmd, Attributes attributes)
{
  super(op, mmd, attributes);
  this.fieldNumber = mmd.getAbsoluteFieldNumber();
  this.storeMgr = storeMgr;
  this.clr = ec.getClassLoaderResolver();
  this.effectiveClassMetaData = LDAPUtils.getEffectiveClassMetaData(mmd, ec.getMetaDataManager());
}

代码示例来源:origin: org.datanucleus/datanucleus-ldap

protected RelationByDnStrategy(StoreManager storeMgr, ObjectProvider sm, AbstractMemberMetaData mmd, Attributes attributes)
{
  super(sm, mmd, attributes);
  this.fieldNumber = mmd.getAbsoluteFieldNumber();
  this.storeMgr = storeMgr;
  this.clr = ec.getClassLoaderResolver();
  this.effectiveClassMetaData = LDAPUtils.getEffectiveClassMetaData(mmd, ec.getMetaDataManager());
  this.mappingMetaData = new RelationByDnMetaData(mmd, ec.getMetaDataManager());
  if (mappingMetaData.getOwnerAttributeName() == null)
  {
    // Sanity check on metadata
    throw new NucleusUserException("Member " + mmd.getFullFieldName() + " stores multiple values and has owner LDAP attribute as NULL. The metadata is incorrect and needs to set this.");
  }
}

代码示例来源:origin: org.datanucleus/datanucleus-ldap

LdapName base = LDAPUtils.getSearchBase(cmd, ec.getMetaDataManager());
List<Object> objects = LDAPUtils.getObjectsOfCandidateType(storeMgr, ec, cmd, base, attributeFilter, true, false);

代码示例来源:origin: org.datanucleus/datanucleus-api-jdo

@Override
public JDOQLTypedQuery<T> saveAsNamedQuery(String name)
{
  assertIsOpen();
  JDOPersistenceManagerFactory.checkJDOPermission(JDOPermission.GET_METADATA);
  QueryMetaData qmd = new QueryMetaData(name);
  qmd.setLanguage(Query.LANGUAGE_JDOQL);
  Query query = getInternalQuery();
  qmd.setQuery(query.toString());
  qmd.setResultClass(query.getResultClassName());
  qmd.setUnique(query.isUnique());
  Map<String, Object> queryExts = query.getExtensions();
  if (queryExts != null && !queryExts.isEmpty())
  {
    Iterator<Map.Entry<String, Object>> queryExtsIter = queryExts.entrySet().iterator();
    while (queryExtsIter.hasNext())
    {
      Map.Entry<String, Object> queryExtEntry = queryExtsIter.next();
      qmd.addExtension(queryExtEntry.getKey(), "" + queryExtEntry.getValue());
    }
  }
  query.getExecutionContext().getMetaDataManager().registerNamedQuery(qmd);
  return this;
}

代码示例来源:origin: org.datanucleus/datanucleus-rdbms

/**
 * Convenience method that takes a result set that contains a discriminator column and returns the class name that it represents.
 * @param discrimMapping Mapping for the discriminator column
 * @param dismd Metadata for the discriminator
 * @param rs The result set
 * @param ec execution context
 * @return The class name for the object represented in the current row
 */
public static String getClassNameFromDiscriminatorResultSetRow(JavaTypeMapping discrimMapping, DiscriminatorMetaData dismd, ResultSet rs, ExecutionContext ec)
{
  String rowClassName = null;
  if (discrimMapping != null && dismd.getStrategy() != DiscriminatorStrategy.NONE)
  {
    try
    {
      String discriminatorColName = discrimMapping.getDatastoreMapping(0).getColumn().getIdentifier().getName();
      String discriminatorValue = rs.getString(discriminatorColName);
      rowClassName = ec.getMetaDataManager().getClassNameFromDiscriminatorValue(discriminatorValue, dismd);
    }
    catch (SQLException e)
    {
      // discriminator column doesn't exist with this name
    }
  }
  return rowClassName;
}

代码示例来源:origin: org.datanucleus/datanucleus-rdbms

AbstractClassMetaData cmd = ec.getMetaDataManager().getMetaDataForEntityName(className);
if (cmd != null)

代码示例来源:origin: org.datanucleus/datanucleus-rdbms

private Object processSubObjectFields(JavaTypeMapping mapping, Class fieldType, StatementClassMapping relationMappings)
  {
    ClassLoaderResolver clr = ec.getClassLoaderResolver();
    AbstractClassMetaData relatedCmd = ec.getMetaDataManager().getMetaDataForClass(fieldType, clr);
    if (mapping instanceof ReferenceMapping)
    {
      // Special case where we have a ReferenceMapping and single implementation with FK
      ReferenceMapping refMapping = (ReferenceMapping)mapping;
      if (refMapping.getMappingStrategy() == ReferenceMapping.PER_IMPLEMENTATION_MAPPING)
      {
        JavaTypeMapping[] subMappings = refMapping.getJavaTypeMapping();
        if (subMappings != null && subMappings.length == 1)
        {
          relatedCmd = ec.getMetaDataManager().getMetaDataForClass(subMappings[0].getType(), clr);
          fieldType = clr.classForName(subMappings[0].getType());
        }
      }
    }

    ResultObjectFactory relationROF = new PersistentClassROF(ec, rs, false, relationMappings, relatedCmd, fieldType);
    return relationROF.getObject();
  }
}

代码示例来源:origin: org.datanucleus/datanucleus-hbase

if (relationType != RelationType.NONE && MetaDataUtils.getInstance().isMemberEmbedded(ec.getMetaDataManager(), clr, mmd, relationType, null))
    embMmds.add(mmd);
    AbstractClassMetaData embCmd = ec.getMetaDataManager().getMetaDataForClass(mmd.getType(), clr);
    ObjectProvider embOP = ec.getNucleusContext().getObjectProviderFactory().newForEmbedded(ec, embCmd, op, fieldNumber);
    FieldManager ffm = new FetchEmbeddedFieldManager(embOP, result, embMmds, table);

代码示例来源:origin: org.datanucleus/datanucleus-neodatis

/**
 * Utility method to process the passed persistable object.
 * We know that this object has no ObjectProvider when it comes in here.
 * @param fieldNumber Absolute field number
 * @param pc The persistable object
 */
protected void processPersistable(int fieldNumber, Object pc)
{
  ExecutionContext ec = op.getExecutionContext();
  ObjectProvider theSM = null;
  // No ObjectProvider but object returned to us by NeoDatis so we know it is persistent
  // Connect a ObjectProvider in P_CLEAN state with all fields loaded
  AbstractClassMetaData acmd = ec.getMetaDataManager().getMetaDataForClass(pc.getClass(), 
    ec.getClassLoaderResolver());
  Object id = NeoDatisUtils.getIdentityForObject(pc, acmd, ec, odb);
  theSM = ec.getNucleusContext().getObjectProviderFactory().newForPersistentClean(ec, id, pc);
  // Recurse to all fields of this object since just assigned its ObjectProvider
  theSM.provideFields(theSM.getClassMetaData().getAllMemberPositions(), 
    new AssignObjectProviderFieldManager(theSM, odb));
}

代码示例来源:origin: org.datanucleus/datanucleus-excel

public Object fetchObjectField(int fieldNumber)
{
  ClassLoaderResolver clr = ec.getClassLoaderResolver();
  AbstractMemberMetaData mmd = cmd.getMetaDataForManagedMemberAtAbsolutePosition(fieldNumber);
  RelationType relationType = mmd.getRelationType(clr);
  // Special cases
  if (relationType != RelationType.NONE && MetaDataUtils.getInstance().isMemberEmbedded(ec.getMetaDataManager(), clr, mmd, relationType, null))
  {
    // Embedded field
    if (RelationType.isRelationSingleValued(relationType))
    {
      // TODO Null detection
      List<AbstractMemberMetaData> embMmds = new ArrayList<AbstractMemberMetaData>();
      embMmds.add(mmd);
      AbstractClassMetaData embCmd = ec.getMetaDataManager().getMetaDataForClass(mmd.getType(), clr);
      ObjectProvider embOP = ec.getNucleusContext().getObjectProviderFactory().newForEmbedded(ec, embCmd, op, fieldNumber);
      FieldManager fetchEmbFM = new FetchEmbeddedFieldManager(embOP, sheet, rowNumber, embMmds, table);
      embOP.replaceFields(embCmd.getAllMemberPositions(), fetchEmbFM);
      return embOP.getObject();
    }
    else if (RelationType.isRelationMultiValued(relationType))
    {
      throw new NucleusUserException("Dont support embedded multi-valued field at " + mmd.getFullFieldName() + " with Excel");
    }
  }
  return fetchObjectFieldInternal(fieldNumber, mmd, clr, relationType);
}

代码示例来源:origin: org.datanucleus/datanucleus-odf

@Override
public Object fetchObjectField(int fieldNumber)
{
  ClassLoaderResolver clr = ec.getClassLoaderResolver();
  AbstractMemberMetaData mmd = cmd.getMetaDataForManagedMemberAtAbsolutePosition(fieldNumber);
  RelationType relationType = mmd.getRelationType(clr);
  // Special cases
  if (relationType != RelationType.NONE && MetaDataUtils.getInstance().isMemberEmbedded(ec.getMetaDataManager(), clr, mmd, relationType, null))
  {
    // Embedded field
    if (RelationType.isRelationSingleValued(relationType))
    {
      // TODO Null detection
      List<AbstractMemberMetaData> embMmds = new ArrayList<AbstractMemberMetaData>();
      embMmds.add(mmd);
      AbstractClassMetaData embCmd = ec.getMetaDataManager().getMetaDataForClass(mmd.getType(), clr);
      ObjectProvider embOP = ec.getNucleusContext().getObjectProviderFactory().newForEmbedded(ec, embCmd, op, fieldNumber);
      FieldManager fetchEmbFM = new FetchEmbeddedFieldManager(embOP, row, embMmds, table);
      embOP.replaceFields(embCmd.getAllMemberPositions(), fetchEmbFM);
      return embOP.getObject();
    }
    else if (RelationType.isRelationMultiValued(relationType))
    {
      throw new NucleusUserException("Dont support embedded multi-valued field at " + mmd.getFullFieldName() + " with ODF");
    }
  }
  return fetchObjectFieldInternal(fieldNumber, mmd, clr, relationType);
}

代码示例来源:origin: org.datanucleus/datanucleus-rdbms

AbstractClassMetaData paramCmd = ec.getMetaDataManager().getMetaDataForClass(obj.getClass(), clr);
AbstractMemberMetaData paramFieldMmd = paramCmd.getMetaDataForMember(fieldName);
if (paramOP != null)

代码示例来源:origin: org.datanucleus/datanucleus-rdbms

/**
 * Method to bind the specified unbound variable (as cross join) on the assumption that the type is a persistable class.
 * @param expr Unbound expression
 * @param type The type to bind as
 */
public SQLExpression bindVariable(UnboundExpression expr, Class type)
{
  String varName = expr.getVariableName();
  Symbol varSym = compilation.getSymbolTable().getSymbol(varName);
  if (varSym.getValueType() == null)
  {
    varSym.setValueType(type);
  }
  AbstractClassMetaData cmd = ec.getMetaDataManager().getMetaDataForClass(type, clr);
  if (cmd != null)
  {
    // Variable is persistent type, so add cross join (may need changing later on in compilation)
    DatastoreClass varTable = storeMgr.getDatastoreClass(varSym.getValueType().getName(), clr);
    SQLTable varSqlTbl = stmt.join(JoinType.CROSS_JOIN, null, null, null, varTable, "VAR_" + varName, null, null, null, null, true, null);
    SQLTableMapping varSqlTblMapping = new SQLTableMapping(varSqlTbl, cmd, varTable.getIdMapping());
    setSQLTableMappingForAlias(varName, varSqlTblMapping);
    return exprFactory.newExpression(stmt, varSqlTbl, varTable.getIdMapping());
  }
  return null;
}

相关文章