类org.hibernate.query.NativeQuery源码实例Demo

下面列出了怎么用org.hibernate.query.NativeQuery的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: ueboot   文件: DefaultJpaRepository.java
public <S> List<S> findBySql(StringQuery stringQuery, Class<S> transformer) {
    Assert.notNull(stringQuery, "StringQuery must not be null!");

    String sql = stringQuery.getQuery();
    NamedParams params = stringQuery.getParams();

    Assert.notNull(params, "NamedParams must not be null!");

    Query query = em.createNativeQuery(sql);
    setQueryParams(query, params);

    NativeQuery sqlQuery = query.unwrap(NativeQuery.class);
    stringQuery.getScalars().forEach((s, type) -> {
        sqlQuery.addScalar(s, type);
    });

    return sqlQuery.setResultTransformer(Transformers.aliasToBean(transformer)).list();
}
 
源代码2 项目: ueboot   文件: DefaultJpaRepository.java
public List findBySql(StringQuery stringQuery, ResultTransformer transformer) {
    Assert.notNull(stringQuery, "StringQuery must not be null!");

    String sql = stringQuery.getQuery();
    NamedParams params = stringQuery.getParams();

    Assert.notNull(params, "NamedParams must not be null!");

    Query query = em.createNativeQuery(sql);
    setQueryParams(query, params);

    NativeQuery sqlQuery = query.unwrap(NativeQuery.class);
    stringQuery.getScalars().forEach((s, type) -> {
        sqlQuery.addScalar(s, type);
    });

    return sqlQuery.setResultTransformer(transformer).list();
}
 
源代码3 项目: Course-System-Back   文件: AdminDaoImpl.java
@Override
public boolean setSelect(int value) {
	// TODO Auto-generated method stub
	
	String sql = "update syscontrol set ifSelect = " + value;
	try {
		NativeQuery<?> query = sessionFactory.getCurrentSession().createNativeQuery(sql);
		query.executeUpdate();
		return true;
	} catch (Exception e) {
		// TODO: handle exception
		System.err.println("系统表更新失败!");
		return false;
	}
	
}
 
源代码4 项目: lams   文件: ScratchieSessionDAOHibernate.java
@Override
   public Object[] getStatsMarksForLeaders(Long toolContentId) {
NativeQuery<?> query = getSession().createNativeQuery(FIND_MARK_STATS)
	.addScalar("min_grade", FloatType.INSTANCE)
	.addScalar("avg_grade", FloatType.INSTANCE)
	.addScalar("max_grade", FloatType.INSTANCE)
	.addScalar("num_complete", IntegerType.INSTANCE);
query.setParameter("toolContentId", toolContentId);
@SuppressWarnings("unchecked")
List<Object[]> list = (List<Object[]>) query.list();
if ((list == null) || (list.size() == 0)) {
    return null;
} else {
    return (Object[]) list.get(0);
}
   }
 
源代码5 项目: lams   文件: AssessmentUserDAOHibernate.java
@SuppressWarnings("unchecked")
   @Override
   public Object[] getStatsMarksForLeaders(Long toolContentId) {
NativeQuery<Object[]> query = getSession().createNativeQuery(FIND_MARK_STATS_FOR_LEADERS)
	.addScalar("min_grade", FloatType.INSTANCE)
	.addScalar("avg_grade", FloatType.INSTANCE)
	.addScalar("max_grade", FloatType.INSTANCE)
	.addScalar("num_complete", IntegerType.INSTANCE);
query.setParameter("toolContentId", toolContentId);
List list = query.list();
if ((list == null) || (list.size() == 0)) {
    return null;
} else {
    return (Object[]) list.get(0);
}
   }
 
源代码6 项目: lams   文件: AssessmentResultDAOHibernate.java
@Override
   public int countAttemptsPerOption(Long optionUid) {
String COUNT_ATTEMPTS_BY_OPTION_UID = "SELECT count(*) "
	+ "FROM tl_laasse10_assessment_result AS result "
	+ "JOIN tl_laasse10_question_result AS questionResult ON result.uid = questionResult.result_uid "
	+ "JOIN tl_laasse10_option_answer AS optionAnswer ON questionResult.uid = optionAnswer.question_result_uid AND optionAnswer.answer_boolean=1 AND optionAnswer.question_option_uid = :optionUid "
	+ "WHERE (result.finish_date IS NOT NULL) AND result.latest=1";

NativeQuery<?> query = getSession().createNativeQuery(COUNT_ATTEMPTS_BY_OPTION_UID);
query.setParameter("optionUid", optionUid);
List list = query.list();
if (list == null || list.size() == 0) {
    return 0;
}
return ((Number) list.get(0)).intValue();
   }
 
源代码7 项目: lams   文件: QaQueUsrDAO.java
@SuppressWarnings("unchecked")
   @Override
   public int getCountUsersBySessionWithSearch(final Long toolSessionId, String searchString) {

StringBuilder queryText = new StringBuilder(GET_COUNT_USERS_FOR_SESSION_AND_QUESTION_WITH_NAME_SEARCH);
buildNameSearch(queryText, searchString);

NativeQuery<Object[]> query = getSession().createNativeQuery(queryText.toString());
query.setParameter("toolSessionId", toolSessionId);
List list = query.list();

if (list == null || list.size() == 0) {
    return 0;
}
return ((Number) list.get(0)).intValue();
   }
 
@Test
public void testNativeQueryResultMapping() {
    doInJPA(entityManager -> {
        List<BookDTO> books = entityManager.createNativeQuery(
            "SELECT " +
            "       b.id as id, " +
            "       b.properties as properties " +
            "FROM book b")
        .unwrap(NativeQuery.class)
        .setResultSetMapping("BookDTO")
        .getResultList();

        assertEquals(1, books.size());
        BookDTO book = books.get(0);

        assertEquals(expectedPrice(), book.getProperties().get("price").asText());
    });
}
 
源代码9 项目: lams   文件: CommentDAO.java
@SuppressWarnings({ "unchecked" })
   private SortedSet<Comment> getNextThreadByThreadIdNewestFirst(final Long rootTopicId,
    final Long previousThreadMessageId, Integer numberOfThreads, Integer sortBy, Integer userId) {

// the search to get to the top level is quite light, so get just the uids
// then build a complete set.
List<Number> threadUidList = null;
if (previousThreadMessageId == null || previousThreadMessageId == 0L) {
    threadUidList = getSession().createSQLQuery(SQL_QUERY_FIND_FIRST_THREAD_TOP_BY_UID)
	    .setParameter("rootUid", rootTopicId).setMaxResults(numberOfThreads).list();
} else {
    threadUidList = getSession().createSQLQuery(SQL_QUERY_FIND_NEXT_THREAD_TOP).setParameter("rootUid", rootTopicId)
	    .setParameter("lastUid", previousThreadMessageId).setMaxResults(numberOfThreads).list();
}

if (threadUidList != null && threadUidList.size() > 0) {
    NativeQuery<Object[]> query = getSession().createNativeQuery(SQL_QUERY_FIND_NEXT_THREAD_MESSAGES);
    query.addEntity("comment", Comment.class).addScalar("likes_total", IntegerType.INSTANCE)
	    .addScalar("user_vote", IntegerType.INSTANCE).setParameter("userId", userId != null ? userId : 0)
	    .setParameterList("threadIds", threadUidList);
    List<Object[]> results = query.list();
    return upgradeComments(results, sortBy);
}
return new TreeSet<Comment>();
   }
 
源代码10 项目: lams   文件: CommentDAO.java
@SuppressWarnings({ "unchecked" })
   private SortedSet<Comment> getStickyByThreadIdLikes(final Long rootTopicId, Integer sortBy, String extraSortParam,
    Integer userId) {

List<Object[]> topThreadObjects = getSession().createNativeQuery(SQL_QUERY_FIND_STICKY_BY_LIKES)
	.addEntity("comment", Comment.class).addScalar("likes_total", IntegerType.INSTANCE)
	.addScalar("user_vote", IntegerType.INSTANCE).setParameter("rootUid", rootTopicId)
	.setParameter("userId", userId != null ? userId : 0).list();

if (topThreadObjects != null && topThreadObjects.size() > 0) {
    // build the list of uids
    List<Number> threadUidList = new ArrayList<Number>();
    for (Object[] rawObject : topThreadObjects) {
	Comment comment = (Comment) rawObject[0];
	threadUidList.add(comment.getUid());
    }
    NativeQuery<Object[]> query = getSession().createNativeQuery(SQL_QUERY_FIND_NEXT_THREAD_MESSAGES_REPLIES_ONLY);
    query.addEntity("comment", Comment.class).addScalar("likes_total", IntegerType.INSTANCE)
	    .addScalar("user_vote", IntegerType.INSTANCE).setParameter("userId", userId != null ? userId : 0)
	    .setParameterList("threadIds", threadUidList);
    List<Object[]> results = query.list();
    topThreadObjects.addAll(results);
    return upgradeComments(topThreadObjects, sortBy);
}
return new TreeSet<Comment>();
   }
 
源代码11 项目: lams   文件: WikiPageDAO.java
@Override
   public void delete(Object object) {
// remove references to the removed page
WikiPage removedWikiPage = (WikiPage) object;
String title = removedWikiPage.getTitle();
String escapedTitle = WikiPageDTO.javaScriptEscape(title);
String codeToReplace = WikiPageDAO.CHANGE_WIKI_JAVASCRIPT_METHOD.replace("?", escapedTitle);
String replacementCode = "#";

NativeQuery<?> query = getSessionFactory().getCurrentSession().createNativeQuery(REMOVE_WIKI_REFERENCES);
query.setParameter("codeToReplace", codeToReplace);
query.setParameter("replacementCode", replacementCode);
query.setParameter("parentWikiUid", removedWikiPage.getParentWiki().getUid());

super.delete(object);
query.executeUpdate();
   }
 
源代码12 项目: lams   文件: NativeQueryReturnBuilderFetchImpl.java
public NativeQuery.ReturnProperty addProperty(final String propertyName) {
	if ( propertyMappings == null ) {
		propertyMappings = new HashMap<>();
	}
	return new NativeQuery.ReturnProperty() {
		public NativeQuery.ReturnProperty addColumnAlias(String columnAlias) {
			String[] columnAliases = propertyMappings.get( propertyName );
			if ( columnAliases == null ) {
				columnAliases = new String[] {columnAlias};
			}
			else {
				String[] newColumnAliases = new String[columnAliases.length + 1];
				System.arraycopy( columnAliases, 0, newColumnAliases, 0, columnAliases.length );
				newColumnAliases[columnAliases.length] = columnAlias;
				columnAliases = newColumnAliases;
			}
			propertyMappings.put( propertyName, columnAliases );
			return this;
		}
	};
}
 
@Test
@Ignore
public void testIndexing() {
    doInJPA(entityManager -> {

        YearMonth yearMonth = YearMonth.of(1970, 1);

        for (int i = 0; i < 5000; i++) {
            yearMonth = yearMonth.plusMonths(1);

            Book book = new Book();
            book.setTitle(
                    String.format(
                            "IT industry newsletter - %s edition", yearMonth
                    )
            );
            book.setPublishedOn(yearMonth);

            entityManager.persist(book);
        }
    });

    List<String> executionPlanLines = doInJPA(entityManager -> {
        return entityManager.createNativeQuery(
                "EXPLAIN ANALYZE " +
                        "SELECT " +
                        "    b.published_on " +
                        "FROM " +
                        "    book b " +
                        "WHERE " +
                        "   b.published_on BETWEEN :startYearMonth AND :endYearMonth ")
                .unwrap(NativeQuery.class)
                .setParameter("startYearMonth", YearMonth.of(2010, 12), YearMonthEpochType.INSTANCE)
                .setParameter("endYearMonth", YearMonth.of(2018, 1), YearMonthEpochType.INSTANCE)
                .getResultList();
    });

    LOGGER.info("Execution plan: \n{}", executionPlanLines.stream().collect(Collectors.joining("\n")));
}
 
源代码14 项目: ueboot   文件: DefaultJpaRepository.java
public Page findBySql(StringQuery stringQuery, Pageable pageable, ResultTransformer transformer) {
    Assert.notNull(stringQuery, "StringQuery must not be null!");
    Assert.notNull(pageable, "PageRequest must not be null!");
    Assert.notNull(transformer, "Transformer must not be null!");
    String sql = stringQuery.getQuery();
    Assert.hasText(sql, "Sql must has text!");
    Query query = em.createNativeQuery(sql);
    NamedParams params = stringQuery.getParams();
    setQueryParams(query, params);
    query.setMaxResults(pageable.getPageSize());
    query.setFirstResult((int) pageable.getOffset());

    NativeQuery sqlQuery = query.unwrap(NativeQuery.class);
    stringQuery.getScalars().forEach((s, type) -> {
        sqlQuery.addScalar(s, type);
    });

    List resultList = sqlQuery.setResultTransformer(transformer).list();
    String countSql = QueryUtils.genCountQueryString(sql);

    Query countQuery = em.createNativeQuery(countSql);
    setQueryParams(countQuery, params);
    Long total = Long.valueOf(countQuery.getSingleResult().toString());

    Page page = new PageImpl(resultList, pageable, total);
    return page;
}
 
源代码15 项目: lams   文件: SurveyUserDAOHibernate.java
@Override
   @SuppressWarnings("unchecked")
   /** Returns < [surveySession, numUsers] ... [surveySession, numUsers]> */
   public List<Object[]> getStatisticsBySession(final Long contentId) {

NativeQuery<Object[]> query = getSession().createNativeQuery(GET_STATISTICS);
query.addEntity(SurveySession.class).addScalar("numUsers", IntegerType.INSTANCE).setParameter("contentId",
	contentId);
return query.list();
   }
 
@Test
public void test() {
    doInJPA(entityManager -> {
        Book book = entityManager.unwrap(Session.class)
            .bySimpleNaturalId(Book.class)
            .load("978-9730228236");

        QueryCountHolder.clear();

        book.setProperties(
            "{" +
            "   \"title\": \"High-Performance Java Persistence\"," +
            "   \"author\": \"Vlad Mihalcea\"," +
            "   \"publisher\": \"Amazon\"," +
            "   \"price\": 44.99," +
            "   \"url\": \"https://www.amazon.com/High-Performance-Java-Persistence-Vlad-Mihalcea/dp/973022823X/\"" +
            "}"
        );
    });

    QueryCount queryCount = QueryCountHolder.getGrandTotal();
    assertEquals(1, queryCount.getTotal());
    assertEquals(1, queryCount.getUpdate());

    doInJPA(entityManager -> {
        JsonNode properties = (JsonNode) entityManager
            .createNativeQuery(
                "SELECT " +
                "  properties AS properties " +
                "FROM book " +
                "WHERE " +
                "  isbn = :isbn")
            .setParameter("isbn", "978-9730228236")
            .unwrap(NativeQuery.class)
            .addScalar("properties", new JsonBinaryType(JsonNode.class))
            .getSingleResult();

        assertEquals("High-Performance Java Persistence", properties.get("title").asText());
    });
}
 
@Test
public void testFetchAndPaginateUsingDenseRank() {
    doInJPA(entityManager -> {
        List<Post> posts = entityManager.createNamedQuery("PostWithCommentByRank")
        .setParameter("titlePattern", "High-Performance Java Persistence %")
        .setParameter("rank", 5)
        .unwrap(NativeQuery.class)
        .setResultTransformer(
            new DistinctPostResultTransformer(entityManager))
        .getResultList();

        assertEquals(5, posts.size());

        Post post1 = posts.get(0);

        List<PostComment> comments = post1.getComments();

        for (int i = 0; i < COMMENT_COUNT - 1; i++) {
            PostComment postComment1 = comments.get(i);

            assertEquals(
                String.format(
                    "Comment nr. %d - A must-read!",
                    i + 1
                ),
                postComment1.getReview()
            );
        }
    });
}
 
@Test
public void test() {
    doInJPA(entityManager -> {
        Book book = entityManager.unwrap(Session.class)
            .bySimpleNaturalId(Book.class)
            .load("978-9730228236");

        QueryCountHolder.clear();

        book.setProperties(
            "{" +
                "   \"title\": \"High-Performance Java Persistence\"," +
                "   \"author\": \"Vlad Mihalcea\"," +
                "   \"publisher\": \"Amazon\"," +
                "   \"price\": 44.99," +
                "   \"url\": \"https://www.amazon.com/High-Performance-Java-Persistence-Vlad-Mihalcea/dp/973022823X/\"" +
                "}"
        );
    });

    QueryCount queryCount = QueryCountHolder.getGrandTotal();
    assertEquals(1, queryCount.getTotal());
    assertEquals(1, queryCount.getUpdate());

    doInJPA(entityManager -> {
        JsonNode properties = (JsonNode) entityManager
            .createNativeQuery(
                "SELECT " +
                "  properties AS properties " +
                "FROM book " +
                "WHERE " +
                "  isbn = :isbn")
            .setParameter("isbn", "978-9730228236")
            .unwrap(NativeQuery.class)
            .addScalar("properties", new JsonStringType(JsonNode.class))
            .getSingleResult();

        assertEquals("High-Performance Java Persistence", properties.get("title").asText());
    });
}
 
源代码19 项目: lams   文件: AssessmentResultDAOHibernate.java
@Override
   public List<AssessmentUserDTO> getFirstTotalScoresByContentId(Long toolContentId) {
final String FIRST_SCORES_BY_CONTENT_ID = "SELECT user.user_id, res.grade "
	+ "FROM tl_laasse10_assessment_result AS res "
	+ "JOIN tl_laasse10_user AS user ON res.user_uid = user.uid "
	+ "JOIN tl_laasse10_assessment AS assess ON res.assessment_uid = assess.uid AND assess.content_id = :contentId "
	+ "INNER JOIN (SELECT user_uid, MIN(start_date) AS startDate FROM tl_laasse10_assessment_result WHERE finish_date IS NOT NULL GROUP BY user_uid) firstRes "
	+ "ON (res.user_uid = firstRes.user_uid AND res.start_date = firstRes.startDate) GROUP BY res.user_uid";

NativeQuery<?> query = getSession().createNativeQuery(FIRST_SCORES_BY_CONTENT_ID);
query.setParameter("contentId", toolContentId);
@SuppressWarnings("unchecked")
List<Object[]> list = (List<Object[]>) query.list();
return convertResultsToAssessmentUserDTOList(list);
   }
 
源代码20 项目: lams   文件: PeerreviewUserDAOHibernate.java
@Override
   public int createUsersForSession(final PeerreviewSession session) {

NativeQuery<?> query = getSession().createNativeQuery(CREATE_USERS);
query.setParameter("session_uid", session.getUid()).setParameter("tool_session_id", session.getSessionId());
return query.executeUpdate();
   }
 
@Test
@Ignore
public void testIndexing() {
    doInJPA(entityManager -> {

        YearMonth yearMonth = YearMonth.of(1970, 1);
                
        for (int i = 0; i < 5000; i++) {
            yearMonth = yearMonth.plusMonths(1);

            Book book = new Book();
            book.setTitle(
                String.format(
                    "IT industry newsletter - %s edition", yearMonth
                )
            );
            book.setPublishedOn(yearMonth);

            entityManager.persist(book);
        }
    });

    List<String> executionPlanLines = doInJPA(entityManager -> {
        return entityManager.createNativeQuery(
            "EXPLAIN ANALYZE " +
                "SELECT " +
                "    b.published_on " +
                "FROM " +
                "    book b " +
                "WHERE " +
                "   b.published_on BETWEEN :startYearMonth AND :endYearMonth ")
                .unwrap(NativeQuery.class)
                .setParameter("startYearMonth", YearMonth.of(2010, 12), YearMonthIntegerType.INSTANCE)
                .setParameter("endYearMonth", YearMonth.of(2018, 1), YearMonthIntegerType.INSTANCE)
            .getResultList();
    });

    LOGGER.info("Execution plan: \n{}", executionPlanLines.stream().collect(Collectors.joining("\n")));
}
 
源代码22 项目: lams   文件: LogEventDAO.java
private void addParameters(Date startDate, Date endDate, String area, Integer typeId, NativeQuery<Object[]> query) {
if (startDate != null && endDate != null) {
    query.setParameter("startDate", startDate);
    query.setParameter("endDate", endDate);
}
if (typeId != null) {
    query.setParameter("typeId", typeId);
} else if (area != null) {
    query.setParameter("area", area);
}
   }
 
源代码23 项目: lams   文件: ResourceItemVisitDAOHibernate.java
@Override
   public Object[] getDateRangeOfAccesses(Long userUid, Long toolSessionId) {
@SuppressWarnings("unchecked")
NativeQuery<Object[]> query = getSession().createNativeQuery(SQL_QUERY_DATES_BY_USER_SESSION.toString())
	.setParameter("userUid", userUid).setParameter("sessionId", toolSessionId);
Object[] values = (Object[]) query.list().get(0);
return values;
   }
 
源代码24 项目: lams   文件: NotebookUserDAO.java
@Override
   @SuppressWarnings("unchecked")
   public List<StatisticDTO> getStatisticsBySession(final Long contentId) {
NativeQuery<StatisticDTO> query = getSession().createNativeQuery(GET_STATISTICS);
query.addScalar("sessionId", LongType.INSTANCE).addScalar("sessionName", StringType.INSTANCE)
	.addScalar("numLearners", IntegerType.INSTANCE).addScalar("numLearnersFinished", IntegerType.INSTANCE)
	.setParameter("contentId", contentId).setResultTransformer(Transformers.aliasToBean(StatisticDTO.class));
return query.list();
   }
 
源代码25 项目: lams   文件: VoteUsrAttemptDAO.java
@Override
   @SuppressWarnings("rawtypes")
   public int getCountUsersForOpenTextEntries(Long sessionUid, Long toolContentId, String searchStringVote,
    String searchStringUsername) {

NativeQuery query;
StringBuilder queryText = new StringBuilder(COUNT_USERS_OPEN_TEXT_BY_SESSION_UID);

if (sessionUid != null) {
    // get all the users who did an open text reply, restricting by session
    queryText.append(FIND_USER_OPEN_TEXT_SESSION_UID_ADD);
    buildCombinedSearch(searchStringVote, searchStringUsername, queryText);
    query = getSession().createSQLQuery(queryText.toString());
    query.setParameter("sessionUid", sessionUid);

} else {

    // get all the users for this content (more than one session potentially)
    queryText.append(FIND_USER_OPEN_TEXT_CONTENT_UID_ADD);
    buildCombinedSearch(searchStringVote, searchStringUsername, queryText);
    query = getSession().createSQLQuery(queryText.toString());
    query.setParameter("toolContentId", toolContentId);

}

List list = query.list();
if (list == null || list.size() == 0) {
    return 0;
}
return ((Number) list.get(0)).intValue();
   }
 
源代码26 项目: lams   文件: VoteUsrAttemptDAO.java
@Override
   @SuppressWarnings("unchecked")
   public List<VoteStatsDTO> getStatisticsBySession(Long toolContentId) {

NativeQuery<VoteStatsDTO> query = getSession().createSQLQuery(GET_STATISTICS);
query.addScalar("sessionUid", LongType.INSTANCE).addScalar("sessionName", StringType.INSTANCE)
	.addScalar("countUsersComplete", IntegerType.INSTANCE).setParameter("contentId", toolContentId)
	.setResultTransformer(Transformers.aliasToBean(VoteStatsDTO.class));

return query.list();
   }
 
源代码27 项目: lams   文件: MessageDao.java
@Override
   public Object[] getDateRangeOfMessages(Long userUid) {
NativeQuery<?> query =  getSession().createNativeQuery(SQL_QUERY_DATES_BY_USER_SESSION.toString())
	.setParameter("userUid", userUid);
Object[] values = (Object[]) query.list().get(0);
return values;
   }
 
private Query bind(Query query, Object[] values) {
    //get proxy target if exist.
    //must be hibernate QueryImpl
    NativeQuery targetQuery = AopTargetUtils.getTarget(query);
    Map<String, Object> params = getParams(values);
    if (!CollectionUtils.isEmpty(params)) {
        QueryBuilder.setParams(targetQuery, params);
    }
    return query;
}
 
源代码29 项目: lams   文件: McUserDAO.java
@SuppressWarnings("unchecked")
   @Override
   public List<Number> getRawLeaderMarksByToolContentId(Long toolContentId) {

NativeQuery<Number> query = getSession().createNativeQuery(LOAD_MARKS_FOR_LEADERS);
query.setParameter("toolContentId", toolContentId);
List<Number> list = query.list();
return list;
   }
 
源代码30 项目: lams   文件: SubmitUserDAO.java
@Override
   @SuppressWarnings("unchecked")
   public List<Long> getReportsForGroup(final Long sessionId, final Long reportId) {
NativeQuery<Long> query = getSession().createNativeQuery(GET_GROUP_REPORTS);
query.addScalar("reportId", LongType.INSTANCE)
	.setParameter("sessionId", sessionId)
	.setParameter("reportId", reportId);

return query.list();
   }
 
 类所在包
 同包方法