private synchronized void reloadCache(EntityManager em) { if (em == null || ref.get() != null) return; Metamodel metamodel = em.getMetamodel(); Map<String, Class<?>> map = new HashMap<>(metamodel.getEntities().size() + 2); for (EntityType<?> entity : metamodel.getEntities()) { System.out.printf( "--- Carregando do Metamodel: %s [%s] \n", entity.getName(), entity.getJavaType()); map.put(entity.getName(), entity.getJavaType()); } ref = new SoftReference(map); }
@Bean public CacheManager cacheManager() { log.debug("Starting Ehcache"); cacheManager = net.sf.ehcache.CacheManager.create(); cacheManager .getConfiguration() .setMaxBytesLocalHeap( env.getProperty("cache.ehcache.maxBytesLocalHeap", String.class, "16M")); log.debug("Registering Ehcache Metrics gauges"); Set<EntityType<?>> entities = entityManager.getMetamodel().getEntities(); for (EntityType<?> entity : entities) { String name = entity.getName(); if (name == null || entity.getJavaType() != null) { name = entity.getJavaType().getName(); } Assert.notNull(name, "entity cannot exist without a identifier"); net.sf.ehcache.Cache cache = cacheManager.getCache(name); if (cache != null) { cache .getCacheConfiguration() .setTimeToLiveSeconds(env.getProperty("cache.timeToLiveSeconds", Long.class, 3600L)); net.sf.ehcache.Ehcache decoratedCache = InstrumentedEhcache.instrument(metricRegistry, cache); cacheManager.replaceCacheWithDecoratedCache(cache, decoratedCache); } } EhCacheCacheManager ehCacheManager = new EhCacheCacheManager(); ehCacheManager.setCacheManager(cacheManager); return ehCacheManager; }
@Test public void allClassMapping() throws Exception { Metamodel model = em.getEntityManagerFactory().getMetamodel(); for (EntityType<?> entityType : model.getEntities()) { String entityName = entityType.getName(); em.createQuery("select o from " + entityName + " o").getFirstResult(); logger.info("ok: " + entityName); } }
@Override public Map<String, Class<Entity>> getTableMap() { Map<String, Class<Entity>> map = new HashMap<String, Class<Entity>>(); Metamodel metamodel = entityManager.getEntityManagerFactory().getMetamodel(); Set<EntityType<?>> set = metamodel.getEntities(); for (EntityType<?> entityType : set) { Class<Entity> clazz = (Class<Entity>) entityType.getJavaType(); map.put(entityType.getName(), clazz); } return map; }
@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); } }
@Before public void setUp() throws Exception { initMocks(this); final EntityType<Foo> foo = mock(EntityType.class); when(foo.getName()).thenReturn("foo"); when(foo.getJavaType()).thenReturn(Foo.class); when(metamodel.entity(Foo.class)).thenReturn(foo); when(metamodel.getEntities()).thenReturn(new HashSet<EntityType<?>>(Arrays.asList(foo))); wrapper = new MetamodelWrapper(metamodel); }
@Override public Map<String, Map<String, Class<?>>> getTableColumnMap() { Metamodel metamodel = entityManager.getEntityManagerFactory().getMetamodel(); Set<EntityType<?>> entityTypes = metamodel.getEntities(); Map<String, Map<String, Class<?>>> tableColumnMap = new HashMap<String, Map<String, Class<?>>>(); for (EntityType<?> type : entityTypes) { EntityType<Entity> entityType = (EntityType<Entity>) type; Set<SingularAttribute<? super Entity, ?>> singularAttributes = entityType.getSingularAttributes(); Map<String, Class<?>> columnMap = new HashMap<String, Class<?>>(); for (SingularAttribute<? super Entity, ?> singularAttribute : singularAttributes) { columnMap.put(singularAttribute.getName(), singularAttribute.getJavaType()); } tableColumnMap.put(entityType.getName(), columnMap); } return tableColumnMap; }
public void run() { logger.debug("Starting protean server"); if (entityManager != null) { for (EntityType<?> entity : entityManager.getMetamodel().getEntities()) { if (entity.getJavaType().getAnnotation(Protean.class) == null) { continue; } getEntities().put(entity.getName(), entity); } } Thread thread = new Thread(server); thread.start(); logger.info("Started protean server"); }
@Bean public CacheManager cacheManager(JHipsterProperties jHipsterProperties) { log.debug("Starting Ehcache"); cacheManager = net.sf.ehcache.CacheManager.create(); cacheManager .getConfiguration() .setMaxBytesLocalHeap(jHipsterProperties.getCache().getEhcache().getMaxBytesLocalHeap()); log.debug("Registering Ehcache Metrics gauges"); Set<EntityType<?>> entities = entityManager.getMetamodel().getEntities(); for (EntityType<?> entity : entities) { String name = entity.getName(); if (name == null || entity.getJavaType() != null) { name = entity.getJavaType().getName(); } Assert.notNull(name, "entity cannot exist without an identifier"); reconfigureCache(name, jHipsterProperties); for (PluralAttribute pluralAttribute : entity.getPluralAttributes()) { reconfigureCache(name + "." + pluralAttribute.getName(), jHipsterProperties); } } EhCacheCacheManager ehCacheManager = new EhCacheCacheManager(); ehCacheManager.setCacheManager(cacheManager); return ehCacheManager; }
protected static String getEntityName(Class<?> clazz, EntityManager entityManager) { EntityType et = entityManager.getMetamodel().entity(clazz); return et.getName(); }