微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javax.persistence.metamodel.Metamodel的实例源码

项目:tap17-muggl-javaee    文件StaticEntityConstraintManager.java   
protected static void addIdFieldConstraints(metamodel metamodel,SolverManager solver,VirtualObjectDatabase vodb) {
        Map<String,Set<DatabaSEObject>> reqData = vodb.getPreExecutionrequiredData();
        for(String entityName : reqData.keySet()) {
            String idName = EntityConstraintAnalyzer.getIdFieldName(entityName);
            Set<Expression> uniqueNumericObjects = new HashSet<>();
            for(DatabaSEObject dbObj : reqData.get(entityName)) {
                Object o = dbObj.valueMap().get(idName);
                if(o != null && o instanceof NumericVariable) {
                    uniqueNumericObjects.add((NumericVariable)o);
//                  solver.addConstraint(GreaterOrEqual.newInstance((NumericVariable)o,NumericConstant.getInstance(0,Expression.INT)));
                }
                else if(o != null && o instanceof IObjectreference && ((IObjectreference)o).getobjectType().equals("java.lang.String")) {
                    Object value = ((IObjectreference)o).valueMap().get("value");
                    if(value instanceof ISymbolicArrayref) {
                        solver.addConstraint(GreaterThan.newInstance(((ISymbolicArrayref)value).getSymbolicLength(),Expression.INT)));
                    }
                }
            }
            if(uniqueNumericObjects.size() > 1) {
                solver.addConstraint(new AllDifferent(uniqueNumericObjects));
            }
        }
    }
项目:tap17-muggl-javaee    文件EntityConstraintAnalyzer.java   
public static Set<String> getIdFieldNames(metamodel metamodel,String entityName) {
    Set<String> ids = entityIdMap.get(entityName);
    if(ids == null) {
        ids = new HashSet<>();
        for(EntityType<?> et : metamodel.getEntities()) {
            if(et.getJavaType().getName().equals(entityName)) {
                if(et.hasSingleIdAttribute()) {
                    ids.add(et.getId(et.getIdType().getJavaType()).getName());
                } else {
                    for(Singularattribute<?,?> idAttribute : et.getIdClassAttributes()) {
                        ids.add(idAttribute.getName());
                    }
                }
            }
        }
    }
    if(ids.size() == 0) {
        ids.add("id");
    }
    return ids;
}
项目:mycore    文件MCRJPABootstrapper.java   
@Override
public void startUp(ServletContext servletContext) {
    try {
        initializeJPA();
    } catch (PersistenceException e) {
        //fix for MCR-1236
        if (MCRConfiguration.instance().getBoolean("MCR.Persistence.Database.Enable",true)) {
            LogManager.getLogger()
                .error(() -> "Could not initialize JPA. Database access is disabled in this session.",e);
            MCRConfiguration.instance().set("MCR.Persistence.Database.Enable",false);
        }
        MCREntityManagerProvider.init(e);
        return;
    }
    metamodel metamodel = MCREntityManagerProvider.getEntityManagerFactory().getmetamodel();
    checkHibernateMappingConfig(metamodel);
    LogManager.getLogger()
        .info("Mapping these entities: {}",metamodel.getEntities()
            .stream()
            .map(EntityType::getJavaType)
            .map(Class::getName)
            .collect(Collectors.toList()));
    MCRShutdownHandler.getInstance().addCloseable(new MCRJPAShutdownProcessor());
}
项目:mycore    文件MCRJPABootstrapper.java   
private void checkHibernateMappingConfig(metamodel metamodel) {
    Set<String> mappedEntities = metamodel
        .getEntities()
        .stream()
        .map(EntityType::getJavaType)
        .map(Class::getName)
        .collect(Collectors.toSet());
    List<String> unMappedEntities = MCRConfiguration
        .instance()
        .getStrings("MCR.Hibernate.Mappings",Collections.emptyList())
        .stream()
        .filter(cName -> !mappedEntities.contains(cName))
        .collect(Collectors.toList());
    if (!unMappedEntities.isEmpty()) {
        throw new MCRException(
            "JPA Mapping is inclomplete. Could not find a mapping for these classes: " + unMappedEntities);
    }
}
项目:lider    文件PluginDbServiceImpl.java   
/**
 * Returns the table name for a given entity type in the
 * {@link EntityManager}.
 * 
 * @param entityClass
 * @return
 */
public <T> String getTableName(Class<T> entityClass) {
    /*
     * Check if the specified class is present in the metamodel. Throws
     * IllegalArgumentException if not.
     */
    metamodel Meta = entityManager.getmetamodel();
    EntityType<T> entityType = Meta.entity(entityClass);

    // Check whether @Table annotation is present on the class.
    Table t = entityClass.getAnnotation(Table.class);

    String tableName = (t == null) ? entityType.getName().toupperCase() : t.name();
    logger.debug("Table name found: {}",tableName);
    return tableName;
}
项目:jpasecurity    文件AccessRulesCompilerTest.java   
@Test
public void ruleWithSubselect() throws ParseException {
    String rule = " GRANT READ ACCESS TO ClientDetails cd "
                + " WHERE cd.clientRelations.client.id "
                + " IN (SELECT cs.client.id FROM ClientStaffing cs,ClientStatus cst,Employee e "
                + "     WHERE e.email=CURRENT_PRINCIPAL AND cs.employee=e "
                + "       AND cs.client= cd.clientRelation.client AND cs.endDate IS NULL "
                + "       AND (cst.name <> 'Closed' OR cst.name IS NULL ))";
    metamodel metamodel = mock(metamodel.class);
    EntityType clientTradeImportMonitorType = mock(EntityType.class);
    when(metamodel.getEntities()).thenReturn(Collections.<EntityType<?>>singleton(clientTradeImportMonitorType));
    when(clientTradeImportMonitorType.getName()).thenReturn(ClientDetails.class.getSimpleName());
    when(clientTradeImportMonitorType.getJavaType()).thenReturn(ClientDetails.class);
    JpqlParser parser = new JpqlParser();
    AccessRulesCompiler compiler = new AccessRulesCompiler(metamodel);

    JpqlAccessRule accessRule = parser.parseRule(rule);
    Collection<AccessRule> compiledRules = compiler.compile(accessRule);
    assertthat(compiledRules.size(),is(1));
    AccessRule compiledRule = compiledRules.iterator().next();
    assertthat(compiledRule.getSelectedpath(),is(new Path("cd")));
}
项目:jpasecurity    文件JpaEntityFilterTest.java   
@Before
public void initialize() throws Exception {
    metamodel = mock(metamodel.class);
    EntityType contactType = mock(EntityType.class);
    Singularattribute ownerAttribute = mock(Singularattribute.class);
    accessManager = mock(DefaultAccessManager.class);
    when(accessManager.getContext()).thenReturn(new DefaultSecurityContext());
    when(contactType.getName()).thenReturn(Contact.class.getSimpleName());
    when(contactType.getJavaType()).thenReturn((Class)Contact.class);
    when(metamodel.getEntities())
        .thenReturn(new HashSet<EntityType<?>>(Arrays.<EntityType<?>>asList(contactType)));
    when(metamodel.entity(Contact.class)).thenReturn(contactType);
    when(metamodel.managedType(Contact.class)).thenReturn(contactType);
    when(contactType.getAttributes()).thenReturn(Collections.singleton(ownerAttribute));
    when(contactType.getAttribute("owner")).thenReturn(ownerAttribute);
    when(ownerAttribute.getName()).thenReturn("owner");
    when(ownerAttribute.getJavaMember()).thenReturn(Contact.class.getDeclaredField("owner"));

    DefaultAccessManager.Instance.register(accessManager);

    JpqlParser parser = new JpqlParser();
    JpqlAccessRule rule
        = parser.parseRule("GRANT READ ACCESS TO Contact contact WHERE contact.owner = CURRENT_PRINCIPAL");
    AccessRulesCompiler compiler = new AccessRulesCompiler(metamodel);
    accessRules = compiler.compile(rule);
}
项目:jpasecurity    文件CriteriaVisitorTest.java   
@Before
public void initialize() {
    metamodel = mock(metamodel.class);
    EntityType testBeanType = mock(EntityType.class);
    when(metamodel.getEntities()).thenReturn(Collections.<EntityType<?>>singleton(testBeanType));
    when(testBeanType.getName()).thenReturn(TestBean.class.getSimpleName());
    when(testBeanType.getJavaType()).thenReturn(TestBean.class);
    securityContext = mock(SecurityContext.class);
    accessManager = mock(DefaultAccessManager.class);
    DefaultAccessManager.Instance.register(accessManager);

    parser = new JpqlParser();
    compiler = new AccessRulesCompiler(metamodel);
    entityManagerFactory = Persistence.createEntityManagerFactory("hibernate");
    criteriaVisitor = new CriteriaVisitor(metamodel,entityManagerFactory.getCriteriaBuilder());
    EntityManager entityManager = entityManagerFactory.createEntityManager();
    entityManager.getTransaction().begin();
    bean1 = new TestBean();
    bean2 = new TestBean();
    entityManager.persist(bean1);
    entityManager.persist(bean2);
    entityManager.getTransaction().commit();
    entityManager.close();
}
项目:dionysus    文件EntityIDTest.java   
@Test
public void makeSureEntityIDCanbedetect() {
    metamodel model = entityManager.getmetamodel();
    final Reflections reflections = new Reflections(EntityIDTest.class.getPackage().getName());
    Set<Class<?>> entities = reflections.getTypesAnnotatedWith(Entity.class);

    for (Class<?> entity : entities) {
        EntityType<?> entityType = model.entity(entity);
        Class<?> id = entityType.getIdType().getJavaType();
        System.out.println(entityType);
        if (entity.equals(InvalidEntity.class)) {
            Assert.assertEquals(id,Serializable.class);
        } else {
            Assert.assertNotEquals(id,Serializable.class);
        }
    }
}
项目:actionbazaar    文件Itemmanager.java   
public void printPersistenceModel() {
    metamodel metamodel = entityManager.getmetamodel();
    Set<EntityType<? extends Object>> types = metamodel.getEntities();
    for(EntityType<? extends Object> type : types) {
        logger.log(Level.INFO,"--> Type: {0}",type);
        Set attributes = type.getAttributes();
        for(Object obj : attributes) {
            logger.log(Level.INFO,"Name: {0}",((Attribute)obj).getName());
            logger.log(Level.INFO,"isCollection: {0}",((Attribute)obj).isCollection());
            logger.log(Level.INFO,((Attribute)obj).isAssociation());
            logger.log(Level.INFO,((Attribute)obj).getPersistentAttributeType());
        }

    }

    EntityType<Item> item = metamodel.entity(Item.class);
}
项目:olingo-odata2    文件ODataJPAContextMock.java   
private static EntityManager mockEntityManager() {
  EntityManager em = EasyMock.createMock(EntityManager.class);
  metamodel mm = EasyMock.createMock(metamodel.class);
  EasyMock.expect(em.getmetamodel()).andReturn(mm).anyTimes();
  Set<EntityType<?>> et = new HashSet<EntityType<?>>();
  EasyMock.expect(mm.getEntities()).andReturn(et).anyTimes();
  EasyMock.expect(em.isopen()).andReturn(true).anyTimes();
  Query jpqlquery = EasyMock.createMock(Query.class);
  Capture<String> capturedArgument = new Capture<String>();
  EasyMock.expect(em.createquery(EasyMock.capture(capturedArgument))).andReturn(jpqlquery);
  EasyMock.expect(jpqlquery.setParameter(EasyMock.anyInt(),EasyMock.anyObject()))
  .andReturn(jpqlquery).anyTimes();
  EasyMock.replay(em,mm,jpqlquery);
  return em;

}
项目:Hibernate-Search-GenericJPA    文件MassIndexerImpl.java   
@SuppressWarnings({"unchecked","rawtypes"})
private String getIdProperty(Class<?> entityClass) {
    String idProperty = null;
    metamodel metamodel = this.emf.getmetamodel();
    EntityType entity = metamodel.entity( entityClass );
    Set<Singularattribute> singularattributes = entity.getSingularattributes();
    for ( Singularattribute singularattribute : singularattributes ) {
        if ( singularattribute.isId() ) {
            idProperty = singularattribute.getName();
            break;
        }
    }
    if ( idProperty == null ) {
        throw new SearchException( "id field not found for: " + entityClass );
    }
    return idProperty;
}
项目:tap17-muggl-javaee    文件requiredDatabaseStateTextGenerator.java   
public requiredDatabaseStateTextGenerator(metamodel metamodel,Solution solution,SymbolicObjectStore objectStore) {
    this.metamodel = metamodel;
    this.objectFieldNameMap = new HashMap<>();
    this.generatedEntityCounterMap = new HashMap<>();
    this.solution = solution;
    this.objectStore = objectStore;
    this.entityObjectIds = new HashSet<>();
}
项目:holon-datastore-jpa    文件EntityTargetCache.java   
/**
 * Try to obtain JPA Entity mapping class from given path name using given ClassLoader
 * @param classLoader ClassLoader to use
 * @param name Path name (not null)
 * @param metamodel JPA metamodel (not null)
 * @return Entity class,or <code>null</code> target was null
 */
public synchronized static Optional<Class<?>> resolveEntityClass(ClassLoader classLoader,String name,metamodel metamodel) {

    ObjectUtils.argumentNotNull(name,"Name must be not null");
    ObjectUtils.argumentNotNull(metamodel,"metamodel name must be not null");

    final ClassLoader cl = (classLoader != null) ? classLoader : ClassUtils.getDefaultClassLoader();

    // check cache
    Map<String,Class<?>> mappings = ENTITY_TARGETS.getorDefault(cl,Collections.emptyMap());
    if (mappings.containsKey(name)) {
        return Optional.of(mappings.get(name));
    }

    // try to resolve by entity name
    Optional<Class<?>> entityClass = metamodel.getEntities().stream().filter(e -> e.getName().equals(name))
            .findFirst().map(e -> e.getJavaType());
    // try to resolve by entity type
    if (!entityClass.isPresent()) {
        entityClass = metamodel.getEntities().stream().filter(e -> e.getJavaType().getName().equals(name))
                .findFirst().map(e -> e.getJavaType());
    }

    // cache value
    entityClass.ifPresent(e -> ENTITY_TARGETS.computeIfAbsent(cl,c -> new HashMap<>()).put(name,e));

    return entityClass;

}
项目:webpedidos    文件Produtos.java   
public List<Produto> filTrados(ProdutoFilter filter) {

        metamodel Meta = manager.getmetamodel();
        EntityType<Produto> type = Meta.entity(Produto.class);

        CriteriaBuilder criteriaBuilder = manager.getCriteriaBuilder();
        CriteriaQuery<Produto> criteriaQuery = criteriaBuilder.createquery(Produto.class);
        Root<Produto> root = criteriaQuery.from(Produto.class);

        if (StringUtils.isNotBlank(filter.getSku())) {
            Predicate equalsPredicate = criteriaBuilder.equal(root.get("sku"),filter.getSku());
            criteriaQuery.where(equalsPredicate);
        }

        // vamos usar o atributo nome para filtragem e ordenação
        Path<String> nomeAttr = root.get(type.getDeclaredSingularattribute("nome",String.class));

        if (StringUtils.isNotBlank(filter.getNome())) {
            Expression<String> expr = criteriaBuilder.lower(nomeAttr);

            // where nome like '%nome%'
            String match = String.format("%%%s%%",filter.getNome().toLowerCase());

            Predicate likePredicate = criteriaBuilder.like(expr,match);
            criteriaQuery.where(likePredicate);
        }

        Order ordernacao = criteriaBuilder.asc(nomeAttr);

        criteriaQuery.orderBy(ordernacao);

        return manager.createquery(criteriaQuery).getResultList();
    }
项目:YCBugsManager    文件JpaMappingTest.java   
@Test
public void allClassMapping() throws Exception {
    metamodel model = em.getEntityManagerFactory().getmetamodel();
    assertthat(model.getEntities()).as("No entity mapping found").isNotEmpty();

    for (EntityType entityType : model.getEntities()) {
        String entityName = entityType.getName();
        em.createquery("select o from " + entityName + " o").getResultList();
        logger.info("ok: " + entityName);
    }
}
项目:cibet    文件AnnotationUtil.java   
/**
 * returns the name of the primary key field
 * 
 * @param clazz
 * @return
 */
public static <T> String primaryKeyName(Class<T> clazz) {
   metamodel metamodel = Context.internalRequestScope().getApplicationEntityManager().getmetamodel();
   EntityType<T> entityType = metamodel.entity(clazz);
   if (!entityType.hasSingleIdAttribute()) {
      String msg = "Composite persistence ID classes are not supported";
      throw new RuntimeException(msg);
   }
   Class<?> idClass = entityType.getIdType().getJavaType();
   log.debug("idClass: " + idClass.getName());
   String idName = entityType.getId(idClass).getName();
   log.debug("found id for class " + clazz.getName() + ": " + idName);
   return idName;
}
项目:jpasecurity    文件EntityFilter.java   
public EntityFilter(metamodel metamodel,SecurePersistenceUnitUtil util,Collection<AccessRule> accessRules,SubselectEvaluator... evaluators) {
    this.metamodel = notNull(metamodel.class,metamodel);
    this.persistenceUnitUtil = notNull(SecurePersistenceUnitUtil.class,util);
    this.parser = new JpqlParser();
    this.compiler = new JpqlCompiler(metamodel);
    this.queryEvaluator = new QueryEvaluator(compiler,util,evaluators);
    this.accessRules = accessRules;
}
项目:jpasecurity    文件AccessRulesParser.java   
public AccessRulesParser(String persistenceUnitName,metamodel metamodel,SecurityContext securityContext,AccessRulesProvider accessRulesProvider) {
    this.metamodel = notNull(metamodel.class,metamodel);
    this.securityContext = notNull(SecurityContext.class,securityContext);
    this.accessRulesProvider = notNull(AccessRulesProvider.class,accessRulesProvider);
    compiler = new AccessRulesCompiler(metamodel);
}
项目:jpasecurity    文件QueryOptimizer.java   
public QueryOptimizer(metamodel metamodel,SecurePersistenceUnitUtil persistenceUnitUtil,Map<Alias,Object> aliases,Map<String,Object> namedParameters,Map<Integer,Object> positionalParameters,QueryEvaluator evaluator) {
    this.evaluator = evaluator;
    this.parameters = new QueryEvaluationParameters(metamodel,persistenceUnitUtil,aliases,namedParameters,positionalParameters,QueryEvaluationParameters.EvaluationType.OPTIMIZE_QUERY);
}
项目:jpasecurity    文件AccessRule.java   
/**
 * Returns <tt>true</tt>,if the specified type is a superclass of the selected type
 * of this access rule and so this rule may be assignable if the type of the concrete
 * entity is of the selected type or a subclass.
 */
public boolean mayBeAssignable(Class<?> type,metamodel metamodel) {
    if (type == null) {
        return false;
    }
    return type.isAssignableFrom(getSelectedType(metamodel));
}
项目:jpasecurity    文件JpqlCompiledStatement.java   
/**
 * Returns the types of the selected paths.
 * @param metamodel the mapping @R_343_4045@ion to determine the types
 * @return the types
 * @see #getSelectedpaths()
 */
public Map<Path,Class<?>> getSelectedTypes(metamodel metamodel) {
    Map<Path,Class<?>> selectedTypes = new HashMap<Path,Class<?>>();
    for (Path selectedpath: getSelectedpaths()) {
        selectedTypes.put(selectedpath,TypeDeFinition.Filter.managedTypeForPath(selectedpath)
                    .withmetamodel(metamodel)
                    .filter(getTypeDeFinitions())
                    .getJavaType());
    }
    return selectedTypes;
}
项目:jpasecurity    文件QueryEvaluationParameters.java   
public QueryEvaluationParameters(metamodel metamodel,Object> positionalParameters) {
    this(metamodel,EvaluationType.ACCESS_CHECK);
}
项目:jpasecurity    文件QueryEvaluationParameters.java   
public QueryEvaluationParameters(metamodel metamodel,EvaluationType evaluationType) {
    this.metamodel = notNull(metamodel.class,persistenceUnitUtil);
    this.aliases = aliases;
    this.namedParameters = namedParameters;
    this.positionalParameters = positionalParameters;
    this.evaluationType = evaluationType;
}
项目:jpasecurity    文件InMemoryEvaluationParameters.java   
public InMemoryEvaluationParameters(metamodel mapping@R_343_4045@ion,Object> positionalParameters) {
    super(mapping@R_343_4045@ion,EvaluationType.ACCESS_CHECK);
}
项目:jpasecurity    文件CriteriaEntityFilter.java   
public CriteriaEntityFilter(metamodel metamodel,CriteriaBuilder criteriaBuilder,SubselectEvaluator... evaluators) {
    super(metamodel,accessRules,evaluators);
    criteriaVisitor = new CriteriaVisitor(metamodel,criteriaBuilder);
}
项目:jpasecurity    文件EntityFilterTest.java   
private List<AccessRule> initializeAccessRules(metamodel metamodel) throws ParseException {
    JpqlParser parser = new JpqlParser();
    AccessRulesCompiler compiler = new AccessRulesCompiler(metamodel);
    String rule = "GRANT READ ACCESS TO MethodAccesstestBean testBean WHERE testBean.name = CURRENT_PRINCIPAL";
    JpqlAccessRule parsedRule = parser.parseRule(rule);
    return new ArrayList<AccessRule>(compiler.compile(parsedRule));
}
项目:jpasecurity    文件AccessRulesCompilerTest.java   
@Test
public void rulesOnInterfaces() {
    SecurityContext securityContext = mock(SecurityContext.class);
    metamodel metamodel = mock(metamodel.class);
    EntityType parentTestBeanType = mock(EntityType.class);
    EntityType childTestBeanType = mock(EntityType.class);
    EntityType methodAccesstestBeanType = mock(EntityType.class);
    BasicType stringType = mock(BasicType.class);
    Singularattribute nameAttribute = mock(Singularattribute.class);
    when(metamodel.getManagedTypes()).thenReturn(new HashSet(Arrays.asList(
            parentTestBeanType,childTestBeanType,methodAccesstestBeanType)));
    when(metamodel.getEntities()).thenReturn(new HashSet(Arrays.asList(
            parentTestBeanType,methodAccesstestBeanType)));
    when(metamodel.managedType(ParentTestBean.class)).thenReturn(parentTestBeanType);
    when(metamodel.managedType(ChildTestBean.class)).thenReturn(childTestBeanType);
    when(metamodel.managedType(MethodAccesstestBean.class)).thenReturn(methodAccesstestBeanType);
    when(parentTestBeanType.getName()).thenReturn(ParentTestBean.class.getSimpleName());
    when(parentTestBeanType.getJavaType()).thenReturn(ParentTestBean.class);
    when(parentTestBeanType.getAttribute("name")).thenReturn(nameAttribute);
    when(childTestBeanType.getName()).thenReturn(ChildTestBean.class.getSimpleName());
    when(childTestBeanType.getJavaType()).thenReturn(ChildTestBean.class);
    when(childTestBeanType.getAttribute("name")).thenReturn(nameAttribute);
    when(methodAccesstestBeanType.getName()).thenReturn(MethodAccesstestBean.class.getSimpleName());
    when(methodAccesstestBeanType.getJavaType()).thenReturn(MethodAccesstestBean.class);
    when(methodAccesstestBeanType.getAttribute("name")).thenReturn(nameAttribute);
    when(nameAttribute.getType()).thenReturn(stringType);
    when(nameAttribute.getJavaType()).thenReturn(String.class);
    when(stringType.getPersistenceType()).thenReturn(PersistenceType.BASIC);
    AccessRulesParser parser
        = new AccessRulesParser("interface",metamodel,securityContext,new XmlAccessRulesProvider("interface"));
    assertEquals(2,parser.parseAccessRules().size());
}
项目:jpasecurity    文件AclValueIteratorTest.java   
private MappedpathEvaluator createPathEvaluator() throws NoSuchFieldException {
    metamodel metamodel = mock(metamodel.class);
    SecurePersistenceUnitUtil persistenceUnitUtil = mock(SecurePersistenceUnitUtil.class);
    EntityType userType = mock(EntityType.class);
    EntityType groupType = mock(EntityType.class);
    Attribute groupsAttribute = mock(Attribute.class);
    Attribute fullHierarchyAttribute = mock(Attribute.class);
    when(metamodel.managedType(User.class)).thenReturn(userType);
    when(metamodel.managedType(Group.class)).thenReturn(groupType);
    when(persistenceUnitUtil.isLoaded(any())).thenReturn(true);
    when(persistenceUnitUtil.initialize(any())).thenAnswer(new Answer<Object>() {
        @Override
        public Object answer(InvocationOnMock invocation) throws Throwable {
            return invocation.getArgument(0);
        }
    });
    when(userType.getAttributes()).thenReturn(Collections.singleton(groupsAttribute));
    when(userType.getAttribute("groups")).thenReturn(groupsAttribute);
    when(groupType.getAttributes()).thenReturn(Collections.singleton(fullHierarchyAttribute));
    when(groupType.getAttribute("fullHierarchy")).thenReturn(fullHierarchyAttribute);
    when(groupsAttribute.getName()).thenReturn("groups");
    when(groupsAttribute.getJavaMember()).thenReturn(User.class.getDeclaredField("groups"));
    when(fullHierarchyAttribute.getName()).thenReturn("fullHierarchy");
    when(fullHierarchyAttribute.getJavaMember())
        .thenReturn(Group.class.getDeclaredField("fullHierarchy"));
    return new MappedpathEvaluator(metamodel,persistenceUnitUtil);
}
项目:springJpaKata    文件PersonmetamodelTest.java   
@Test
public void shouldmetamodelWork() {
    metamodel mm = emf.getmetamodel();
    Set<ManagedType<?>> managedTypes = mm.getManagedTypes();
    for(ManagedType<?> mType: managedTypes){
        log.info("{},{}",mType.getJavaType(),mType.getPersistenceType());
    }

}
项目:spring-boot-jpa-data-rest-soft-delete    文件CustomrepositoryRestConfigurerAdapter.java   
private List<Class<?>> getAllManagedEntityTypes(EntityManagerFactory entityManagerFactory) {
    List<Class<?>> entityClasses = new ArrayList<>();
    metamodel metamodel = entityManagerFactory.getmetamodel();

    for (ManagedType<?> managedType : metamodel.getManagedTypes())
        if (managedType.getJavaType().isAnnotationPresent(Entity.class))
            entityClasses.add(managedType.getJavaType());

    return entityClasses;
}
项目:opencucina    文件JpaSearchQueryGeneratorTest.java   
/**
 * Sets up for test
 */
@SuppressWarnings("unchecked")
@Before
public void onSetUp()
    throws Exception {
    queryGenerator = new JpaSearchQueryGenerator();

    EntityManager entityManager = mock(EntityManager.class);
    metamodel mm = mock(metamodel.class);
    ManagedType<Baz> bazm = mock(ManagedType.class);

    when(mm.managedType(Baz.class)).thenReturn(bazm);

    ManagedType<Bar> barm = mock(ManagedType.class);

    when(mm.managedType(Bar.class)).thenReturn(barm);

    ManagedType<Foo> foom = mock(ManagedType.class);

    when(mm.managedType(Foo.class)).thenReturn(foom);
    when(entityManager.getmetamodel()).thenReturn(mm);

    queryGenerator.setEntityManager(entityManager);

    InstanceFactory instanceFactory = new PackageBasedInstanceFactory(ClassUtils.getPackageName(
                Foo.class) + ".");

    queryGenerator.setInstanceFactory(instanceFactory);

    defaultAliasByType = new LinkedHashMap<String,String>();
    defaultAliasByType.put(Foo.TYPE,FOO_ALIAS);

    defaultTypeByAlias = new LinkedHashMap<String,String>();
    defaultTypeByAlias.put(FOO_ALIAS,Foo.TYPE);
}
项目:owsi-core-parent    文件EntityDaoImpl.java   
@Override
@SuppressWarnings("unchecked")
public <E extends GenericEntity<?,?>> List<Class<? extends E>> listAssignableEntityTypes(Class<E> superclass) {
    List<Class<? extends E>> classes = Lists.newLinkedList();
    metamodel metamodel = entityManager.getmetamodel();
    for (EntityType<?> entity : metamodel.getEntities()) {
        Class<?> clazz = entity.getBindableJavaType();
        if (superclass.isAssignableFrom(clazz)) {
            classes.add((Class<? extends E>) clazz);
        }
    }
    return classes;
}
项目:webanno    文件EntityModel.java   
private void analyze(T aObject)
{
    if (aObject != null) {
        entityClass = HibernateProxyHelper.getClassWithoutinitializingProxy(aObject);

        String idProperty = null;
        metamodel metamodel = getEntityManager().getmetamodel();
        EntityType entity = metamodel.entity(entityClass);
        Set<Singularattribute> singularattributes = entity.getSingularattributes();
        for (Singularattribute singularattribute : singularattributes) {
            if (singularattribute.isId()) {
                idProperty = singularattribute.getName();
                break;
            }
        }
        if (idProperty == null) {
            throw new RuntimeException("id field not found");
        }

        DirectFieldAccessor accessor = new DirectFieldAccessor(aObject);
        id = (Number) accessor.getPropertyValue(idProperty);
    }
    else {
        entityClass = null;
        id = null;
    }
}
项目:random-jpa    文件HibernateProvider.java   
private Map<String,Object> getMetaDataMap(final EntityManagerFactory entityManagerFactory) {
    try {
        final metamodel metamodel = entityManagerFactory.getmetamodel();
        return (Map<String,Object>) Util.invokeMethod(metamodel,"entityPersisters");
    } catch (final Exception e) {
        final Object sessionFactory = invokeMethod(entityManagerFactory,"getSessionFactory");
        return (Map<String,Object>) invokeMethod(sessionFactory,"getAllClassMetadata");
    }
}
项目:persistence    文件PersistenceManagerImplJpa.java   
/**
 * {@inheritDoc}
 */
@Override
@SuppressWarnings({ "unchecked","rawtypes" })
protected void doInitialize() {

  super.doInitialize();
  if (this.entityManager == null) {
    throw new ResourceMissingException("entityManager");
  }
  if (this.pojoFactory == null) {
    DefaultPojoFactory factory = new DefaultPojoFactory();
    factory.initialize();
    this.pojoFactory = factory;
  }

  metamodel metamodel = this.entityManager.getmetamodel();
  Set<EntityType<?>> entities = metamodel.getEntities();
  getLogger().info("EntityManager registered with " + entities.size() + " entities.");
  for (EntityType<?> entityType : entities) {
    Class<?> entityClass = entityType.getJavaType();
    if (entityClass == null) {
      // ignore entities that have no java type such as audit/jornal tables from envers.
    } else if (GenericEntity.class.isAssignableFrom(entityClass)) {
      if (!hasDao((Class<? extends GenericEntity<?>>) entityClass)) {
        JpaGenericDao manager = new JpaGenericDao(entityClass);
        manager.setEntityManager(this.entityManager);
        manager.setPojoFactory(this.pojoFactory);
        manager.initialize();
        addDao(manager);
        getLogger().info("Added generic manager for entity " + entityClass.getName());
      } else {
        getLogger().debug("Found registered manager for entity " + entityClass.getName());
      }
    } else {
      getLogger().warn(
          "Entity " + entityClass.getName() + " does NOT implement " + GenericEntity.class.getName());
    }
  }
}
项目:teiid    文件JPAMetadataProcessor.java   
private Table addEntity(MetadataFactory mf,metamodel model,EntityType<?> entity) throws TranslatorException {
    Table table = mf.getSchema().getTable(entity.getName());
    if (table == null) {            
        table = mf.addTable(entity.getName());
        table.setSupportsUpdate(true);
        table.setProperty(ENTITYCLASS,entity.getJavaType().getCanonicalName());
        addPrimaryKey(mf,model,entity,table);
        addSingularattributes(mf,table);
    }
    return table;
}
项目:teiid    文件JPAMetadataProcessor.java   
private void addForeignKeys(MetadataFactory mf,ManagedType<?> entity,Table entityTable) throws TranslatorException {
    for (Attribute<?,?> attr:entity.getAttributes()) {
        if (attr.isCollection()) {

            PluralAttribute pa = (PluralAttribute)attr;
            Table forignTable = null;

            for (EntityType et:model.getEntities()) {
                if (et.getJavaType().equals(pa.getElementType().getJavaType())) {
                    forignTable = mf.getSchema().getTable(et.getName());
                    break;
                }
            }

            if (forignTable == null) {
                continue;
            }

            // add foreign keys as columns in table first; check if they exist first
            ArrayList<String> keys = new ArrayList<String>();
            KeyRecord pk = entityTable.getPrimaryKey();
            for (Column entityColumn:pk.getColumns()) {
                addColumn(mf,entityColumn.getName(),entityColumn.getDatatype().getRuntimeTypeName(),forignTable);
                keys.add(entityColumn.getName());
            }

            if (!foreignKeyExists(keys,forignTable)) {
                addForiegnKey(mf,attr.getName(),keys,entityTable.getName(),forignTable);
            }
        }
    }
}
项目:jpa    文件MetadataService.java   
public void doMD(){
    metamodel md = em.getmetamodel();
    EntityType<Employee> employee = md.entity(Employee.class);
    for(Attribute<? super Employee,?> attr : employee.getAttributes()){
        System.out.println(attr.getName() + " | " + attr.getJavaType().getName() + " | " + attr.getPersistentAttributeType());
    }
}
项目:tesora-dve-pub    文件CatalogSchemaGenerator.java   
private static String[] buildCreateCurrentSchema(CatalogDAO c,Properties catalogProperties) throws PEException {
    ArrayList<String> buf = new ArrayList<String>();
    EntityManagerFactory emf = c.getEntityManager().getEntityManagerFactory();
    Configuration cfg = new Configuration();
    metamodel model = emf.getmetamodel();
    for(EntityType<?> e : model.getEntities()) {
        cfg.addAnnotatedClass(e.getBindableJavaType());
    }
    String[] out = cfg.generateSchemaCreationScript(Dialect.getDialect(catalogProperties));
    buf.addAll(Arrays.asList(out));
    buf.addAll(Arrays.asList(getAdditionalCommands()));
    // current version table must be last - necessary for the upgraded code needed test
    buf.addAll(CatalogVersions.getCurrentVersion().buildCurrentVersionTable());
    return buf.toArray(new String[0]);
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。