javax.persistence.EntityManager#createNativeQuery ( )源码实例Demo

下面列出了javax.persistence.EntityManager#createNativeQuery ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: EasyEE   文件: CommonDAOSpringImpl.java
/**
 * CommonDAO 内部方法, NativeQuery
 * 
 * @param entityManager
 *            entityManager
 * @param sql
 *            sql
 * @param values
 *            values
 * @return Query对象
 */
private Query createNativeQuery(EntityManager entityManager, String sql, Class resultClass, boolean mapResult,
		Map<String, Object> values) {
	Query query = null;
	if (resultClass != null) {
		query = entityManager.createNativeQuery(sql, resultClass);
	} else {
		query = entityManager.createNativeQuery(sql);
	}
	// 封装为Map结果
	if (mapResult) {
		query.unwrap(org.hibernate.Query.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
	}

	if (values != null && values.size() > 0) {
		for (Entry<String, Object> e : values.entrySet()) {
			query.setParameter(e.getKey(), e.getValue());
		}
	}
	return query;
}
 
源代码2 项目: HibernateTips   文件: TestNativeQuery.java
@Test
public void adHocNativeQuery() {
	log.info("... adHocNativeQuery ...");

	EntityManager em = emf.createEntityManager();
	em.getTransaction().begin();

	Query q = em.createNativeQuery("SELECT * FROM book b WHERE id = ?", Book.class);
	q.setParameter(1, 1);
	Book b = (Book) q.getSingleResult();
	Assert.assertTrue(b instanceof Book);
	Assert.assertEquals(new Long(1), ((Book)b).getId());
	
	em.getTransaction().commit();
	em.close();
}
 
源代码3 项目: peer-os   文件: ConfigDataServiceImpl.java
private <T> T executeQuery( String sql, String peerId )
{
    EntityManager em = daoManager.getEntityManagerFactory().createEntityManager();

    try
    {
        Query q = em.createNativeQuery( sql );

        q.setParameter( 1, peerId );

        return ( T ) q.getSingleResult();
    }
    catch ( Exception e )
    {
        LOG.error( "Error to execute query: ", e );
    }
    finally
    {
        daoManager.closeEntityManager( em );
    }

    return null;
}
 
源代码4 项目: EasyEE   文件: CommonDAOSpringImpl.java
/**
 * CommonDAO 内部方法, NativeQuery
 * 
 * @param entityManager
 *            entityManager
 * @param sql
 *            sql
 * @param values
 *            values
 * @return Query对象
 */
private Query createNativeQuery(EntityManager entityManager, String sql, Class resultClass, boolean mapResult,
		Map<String, Object> values) {
	Query query = null;
	if (resultClass != null) {
		query = entityManager.createNativeQuery(sql, resultClass);
	} else {
		query = entityManager.createNativeQuery(sql);
	}
	// 封装为Map结果
	if (mapResult) {
		query.unwrap(org.hibernate.Query.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
	}

	if (values != null && values.size() > 0) {
		for (Entry<String, Object> e : values.entrySet()) {
			query.setParameter(e.getKey(), e.getValue());
		}
	}
	return query;
}
 
源代码5 项目: apiman   文件: JpaStorage.java
/**
 * @see io.apiman.manager.api.core.IStorageQuery#listPluginPolicyDefs(java.lang.Long)
 */
@Override
public List<PolicyDefinitionSummaryBean> listPluginPolicyDefs(Long pluginId) throws StorageException {
    beginTx();
    try {
        EntityManager entityManager = getActiveEntityManager();

                String sql =
                "SELECT pd.id, pd.policy_impl, pd.name, pd.description, pd.icon, pd.plugin_id, pd.form_type" +
                "  FROM policydefs pd" +
                " WHERE pd.plugin_id = ?" +
                " ORDER BY pd.name ASC";
        Query query = entityManager.createNativeQuery(sql);
        query.setParameter(1, pluginId);

        List<Object[]> rows = query.getResultList();
        List<PolicyDefinitionSummaryBean> beans = new ArrayList<>(rows.size());
        for (Object [] row : rows) {
            PolicyDefinitionSummaryBean bean = new PolicyDefinitionSummaryBean();
            bean.setId(String.valueOf(row[0]));
            bean.setPolicyImpl(String.valueOf(row[1]));
            bean.setName(String.valueOf(row[2]));
            bean.setDescription(String.valueOf(row[3]));
            bean.setIcon(String.valueOf(row[4]));
            if (row[5] != null) {
                bean.setPluginId(((Number) row[5]).longValue());
            }
            if (row[6] != null) {
                bean.setFormType(PolicyFormType.valueOf(String.valueOf(row[6])));
            }
            beans.add(bean);
        }
        return beans;
    } catch (Throwable t) {
        logger.error(t.getMessage(), t);
        throw new StorageException(t);
    } finally {
        rollbackTx();
    }
}
 
源代码6 项目: tutorials   文件: QueryExecutor.java
public static List<String[]> executeNativeQueryWithCastCheck(String statement, EntityManager em) {
    Query query = em.createNativeQuery(statement);
    List results = query.getResultList();

    if (results.isEmpty()) {
        return new ArrayList<>();
    }

    if (results.get(0) instanceof String) {
        return ((List<String>) results).stream().map(s -> new String[] { s }).collect(Collectors.toList());
    } else {
        return (List<String[]>) results;
    }
}
 
源代码7 项目: metacat   文件: PartitionDaoImpl.java
/**
 * Gets the partitions.
 * @param tableId table id
 * @param partitionIds partition names
 * @param partitionParts parts
 * @param dateCreatedSqlCriteria criteria
 * @param sort sort
 * @param pageable pageable
 * @return list of partitions
 */
public List<Partition> getPartitions(final Long tableId, final List<String> partitionIds,
    final Iterable<String> partitionParts, final String dateCreatedSqlCriteria,
    final Sort sort, final Pageable pageable) {
    // Create the sql
    final StringBuilder queryBuilder = new StringBuilder(SQL_GET_PARTITIONS);
    if (partitionIds != null && !partitionIds.isEmpty()) {
        queryBuilder.append(" and p.name in ('")
            .append(Joiner.on("','").skipNulls().join(partitionIds))
            .append("')");
    }
    if (partitionParts != null) {
        for (String singlePartitionExpr : partitionParts) {
            queryBuilder.append(" and p.name like '%").append(singlePartitionExpr).append("%'");
        }
    }
    if (!Strings.isNullOrEmpty(dateCreatedSqlCriteria)) {
        queryBuilder.append(" and ").append(dateCreatedSqlCriteria);
    }
    if (sort != null && sort.hasSort()) {
        queryBuilder.append(" order by ").append(sort.getSortBy()).append(" ").append(sort.getOrder().name());
    }
    if (pageable != null && pageable.isPageable()) {
        queryBuilder.append(" limit ").append(pageable.getOffset()).append(',').append(pageable.getLimit());
    }
    // entityManager
    final EntityManager entityManager = em.get();
    final Query pQuery = entityManager.createNativeQuery(queryBuilder.toString(), Partition.class);
    pQuery.setParameter("tableId", tableId);
    return pQuery.getResultList();
}
 
源代码8 项目: we-cmdb   文件: JpaQueryUtils.java
public static void updateSeqNoForMultiReference(EntityManager entityManager, String curGuid, String joinTable, List<String> refGuids, int i, String refGuid) {
    StringBuilder updateSeqSqlBuilder = new StringBuilder();
    updateSeqSqlBuilder.append("update ").append(joinTable).append(" set seq_no = ").append(i + 1).append(" where from_guid = '").append(curGuid).append("' and ").append(" to_guid = '").append(refGuid).append("'");

    Query query = entityManager.createNativeQuery(updateSeqSqlBuilder.toString());
    int updateCount = query.executeUpdate();
    if (updateCount != 1) {
        throw new ServiceException(String.format("Failed to update seq_no for mult reference [from_guid:%s,to_guid:%s]", curGuid, refGuids.get(i)));
    }
}
 
源代码9 项目: we-cmdb   文件: JpaQueryUtils.java
public static Map<String, Integer> getSortedMapForMultiRef(EntityManager entityManager, AdmCiTypeAttr attr, DynamicEntityMeta multRefMeta) {
    Map<String, Integer> sortMap = new HashMap<>();
    String joinTable = attr.retrieveJoinTalbeName();
    String querySql = "select id,from_guid,to_guid, seq_no from " + joinTable;
    Query query = entityManager.createNativeQuery(querySql, multRefMeta.getEntityClazz());
    List results = query.getResultList();

    for (Object bean : results) {
        BeanMap beanMap = new BeanMap(bean);
        sortMap.put((String) beanMap.get("to_guid"), (Integer) beanMap.get("seq_no"));
    }
    return sortMap;
}
 
源代码10 项目: apiman   文件: JpaStorage.java
/**
 * @see io.apiman.manager.api.core.IStorageQuery#listPlugins()
 */
@Override
public List<PluginSummaryBean> listPlugins() throws StorageException {
    beginTx();
    try {
        EntityManager entityManager = getActiveEntityManager();

                String sql =
                "SELECT p.id, p.artifact_id, p.group_id, p.version, p.classifier, p.type, p.name, p.description, p.created_by, p.created_on" +
                "  FROM plugins p" +
                " WHERE p.deleted IS NULL OR p.deleted = 0" +
                " ORDER BY p.name ASC";
        Query query = entityManager.createNativeQuery(sql);

        List<Object[]> rows = query.getResultList();
        List<PluginSummaryBean> plugins = new ArrayList<>(rows.size());
        for (Object [] row : rows) {
            PluginSummaryBean plugin = new PluginSummaryBean();
            plugin.setId(((Number) row[0]).longValue());
            plugin.setArtifactId(String.valueOf(row[1]));
            plugin.setGroupId(String.valueOf(row[2]));
            plugin.setVersion(String.valueOf(row[3]));
            plugin.setClassifier((String) row[4]);
            plugin.setType((String) row[5]);
            plugin.setName(String.valueOf(row[6]));
            plugin.setDescription(String.valueOf(row[7]));
            plugin.setCreatedBy(String.valueOf(row[8]));
            plugin.setCreatedOn((Date) row[9]);
            plugins.add(plugin);
        }
        return plugins;
    } catch (Throwable t) {
        logger.error(t.getMessage(), t);
        throw new StorageException(t);
    } finally {
        rollbackTx();
    }
}
 
源代码11 项目: zstack   文件: RESTApiFacadeImpl.java
private void handle(final DeleteRestApiVOMsg msg){
    int ret = 1;
    int delete = 0;
    EntityManager mgr = getEntityManager();
    EntityTransaction tran = mgr.getTransaction();
    Long time = TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis()) - TimeUnit.DAYS.toSeconds(msg.getRetentionDay());
    long start = System.currentTimeMillis();
    try {
        while (ret > 0) {
            String sql = String.format("delete from RestAPIVO where unix_timestamp(lastOpDate) <= %d limit 1000", time);
            tran.begin();
            Query query = mgr.createNativeQuery(sql);
            ret = query.executeUpdate();
            tran.commit();
            delete = delete + ret;
            if (delete == 0) {
                logger.debug("no RestApiVO history to clean");
                return;
            }
        }
        logger.debug(String.format("delete %d days ago RestApiVO history %d, cost %d ms", msg.getRetentionDay(), delete, System.currentTimeMillis() - start));
    } catch (Exception e) {
        tran.rollback();
        logger.warn(String.format("unable to delete RestApiVO history because %s", e));
    } finally {
        mgr.close();
    }
}
 
源代码12 项目: apiman   文件: JpaStorage.java
/**
 * @see io.apiman.manager.api.core.IStorageQuery#listPolicyDefinitions()
 */
@Override
public List<PolicyDefinitionSummaryBean> listPolicyDefinitions() throws StorageException {
    beginTx();
    try {
        EntityManager entityManager = getActiveEntityManager();

                String sql =
                "SELECT pd.id, pd.policy_impl, pd.name, pd.description, pd.icon, pd.plugin_id, pd.form_type" +
                "  FROM policydefs pd" +
                " WHERE pd.deleted IS NULL OR pd.deleted = 0" +
                " ORDER BY pd.name ASC";
        Query query = entityManager.createNativeQuery(sql);

        List<Object[]> rows = query.getResultList();
        List<PolicyDefinitionSummaryBean> rval = new ArrayList<>(rows.size());
        for (Object [] row : rows) {
            PolicyDefinitionSummaryBean bean = new PolicyDefinitionSummaryBean();
            bean.setId(String.valueOf(row[0]));
            bean.setPolicyImpl(String.valueOf(row[1]));
            bean.setName(String.valueOf(row[2]));
            bean.setDescription(String.valueOf(row[3]));
            bean.setIcon(String.valueOf(row[4]));
            if (row[5] != null) {
                bean.setPluginId(((Number) row[5]).longValue());
            }
            if (row[6] != null) {
                bean.setFormType(PolicyFormType.valueOf(String.valueOf(row[6])));
            }
            rval.add(bean);
        }
        return rval;
    } catch (Throwable t) {
        logger.error(t.getMessage(), t);
        throw new StorageException(t);
    } finally {
        rollbackTx();
    }
}
 
protected int countRowsInTable(EntityManager em, String tableName) {
	Query query = em.createNativeQuery("SELECT COUNT(0) FROM " + tableName);
	return ((Number) query.getSingleResult()).intValue();
}
 
源代码14 项目: james-project   文件: IMAP180JpaMigrateCommand.java
/**
 * Migrate the properties.
 */
@SuppressWarnings("rawtypes")
private static void migrateProperties(EntityManager em) {
    
    em.getTransaction().begin();
    Query propertyCountQuery = em.createNativeQuery("SELECT COUNT(MESSAGE_ID) FROM MESSAGE_PROPERTY", Integer.class);
    Integer propertyCount = (Integer) propertyCountQuery.getResultList().get(0);
    System.out.println("Number of headers=" + propertyCount);

    JpaMigrateQuery.executeUpdate(em, "ALTER TABLE PROPERTY ADD COLUMN MESSAGE_ID BIGINT");

    Query propertyQuery = em.createNativeQuery("SELECT MESSAGE_ID, PROPERTIES_ID FROM MESSAGE_PROPERTY");
    em.getTransaction().commit();

    DelegatingResultList propertyNameList = (DelegatingResultList) propertyQuery.getResultList();
    ResultList rl = propertyNameList.getDelegate();
    for (int i = 0; i < rl.size(); i++) {
        Object[] results = (Object[]) rl.get(i);
        Long messageId = (Long) results[0];
        Long propertyId = (Long) results[1];
        em.getTransaction().begin();
        Query update = em.createNativeQuery("UPDATE PROPERTY SET MESSAGE_ID = ? WHERE ID = ?");
        update.setParameter(1, messageId);
        update.setParameter(2, propertyId);
        int result = update.executeUpdate();
        System.out.printf("ExecuteUpdate returned a result=" + result + " for property %d of %d\n", i + 1, propertyCount);     
        em.getTransaction().commit();
    }
    
    em.getTransaction().begin();
    System.out.println("Creating index.");
    JpaMigrateQuery.executeUpdate(em, "CREATE INDEX SQL100727182411780 ON PROPERTY(MESSAGE_ID)");
    em.getTransaction().commit();
    
    em.getTransaction().begin();
    System.out.println("Creating foreign key.");
    JpaMigrateQuery.executeUpdate(em, "ALTER TABLE PROPERTY ADD CONSTRAINT SQL100727182411780 FOREIGN KEY (MESSAGE_ID) REFERENCES MESSAGE(ID)");
    em.getTransaction().commit();

    em.getTransaction().begin();
    System.out.println("Dropping table.");
    JpaMigrateQuery.executeUpdate(em, "DROP TABLE MESSAGE_PROPERTY");
    em.getTransaction().commit();
    
}
 
源代码15 项目: we-cmdb   文件: TestDatabase.java
static public void disableH2Statistics(EntityManager em) {
    Query query = em.createNativeQuery("SET QUERY_STATISTICS False");
    query.executeUpdate();
}
 
protected int countRowsInTable(EntityManager em, String tableName) {
	Query query = em.createNativeQuery("SELECT COUNT(0) FROM " + tableName);
	return ((Number) query.getSingleResult()).intValue();
}
 
源代码17 项目: tutorials   文件: QueryExecutor.java
public static <T> List<T> executeNativeQueryGeneric(String statement, String mapping, EntityManager em) {
    Query query = em.createNativeQuery(statement, mapping);
    return query.getResultList();
}
 
@Test
@DisableLikeWithLeadingWildcard
public void execute_select_who_started_with_like_wildcard() {

    EntityManager em = emf.createEntityManager();

    Query nativeQuery = em.createNativeQuery("SELECT * FROM Book b WHERE b.title LIKE  '%Ja'");

    nativeQuery.getResultList();

}
 
源代码19 项目: linq   文件: JpaUtil.java
/**
 * 创建本地查询
 * @param sqlString 本地SQL查询字符串
 * @param resultSetMapping 结果集映射名称
 * @param entityManager 实体类管理器
 * @return Query
 */
public static Query nativeQuery(String sqlString, String resultSetMapping, EntityManager entityManager) {
	return entityManager.createNativeQuery(sqlString, resultSetMapping);
}
 
源代码20 项目: linq   文件: JpaUtil.java
/**
 * 创建本地查询
 * @param sqlString 本地SQL查询字符串
 * @param entityManager 实体类管理器
 * @return Query
 */
public static Query nativeQuery(String sqlString, EntityManager entityManager) {
	return entityManager.createNativeQuery(sqlString);
}