簡體   English   中英

映射到 hbm.xml 文件時無法提取 ResultSet

[英]Could not extract ResultSet when mapped into hbm.xml file

我有一個聯合查詢

SELECT al.C_PERSIST_ID AS id, tkl.C_PERSIST_VERSION AS version, tkl.C_TENANT_ID AS tenantId, tkl.C_MESSAGE AS message, tkl.C_CREATED AS created, tkl.C_INT_STATUS AS statusDB, tkl.C_INT_PRIORITY AS priorityDB,tkl.C_ASSIGNED_PERSON_ID AS assignedPersonId, tkl.C_SOURCE AS name, tkl.C_MAJOR_VERSION AS majorVersion, tkl.C_MINOR_VERSION AS minorVersion, tkl.C_ARCHIVED_FLAG AS archived, tkl.C_DEFINITION_ID AS definitionId,al.C_ALERT_DATETIME AS alertDateTime, al.C_ESCALATION_LEVEL AS escalationLevel, al.C_MAX_ESCALATION_LEVEL AS maxEscalationLevel, al.C_WORKFLOW_TO_START AS workflowToStart al.C_ESCALATED_FLAG AS escalatedDB,al.C_DUEDATE AS dueDate
            FROM tkl_Alerts al INNER JOIN tkl_TaskList_Items tkl ON al.C_PERSIST_ID = tkl.C_PERSIST_ID
            LEFT JOIN ( SELECT distinct du.C_TASKLISTITEM_ID 
            FROM tkl_Distribution_Users du 
            WHERE du.C_USER_ID = 'karishma.shaik@infor.com' AND du.C_IS_PERSON = 1) X ON tkl.C_PERSIST_ID = X.C_TASKLISTITEM_ID
            WHERE tkl.C_ARCHIVED_FLAG = 0 
                AND tkl.C_INT_STATUS <> 40 
                AND tkl.C_INT_STATUS <> 50 
                AND tkl.C_ASSIGNED_PERSON_ID IS NULL 
                AND X.C_TASKLISTITEM_ID IS NOT NULL
            union

SELECT al.C_PERSIST_ID AS id, tkl.C_PERSIST_VERSION AS version, tkl.C_TENANT_ID AS tenantId, tkl.C_MESSAGE AS message, tkl.C_CREATED AS created, tkl.C_INT_STATUS AS statusDB, tkl.C_INT_PRIORITY AS priorityDB,tkl.C_ASSIGNED_PERSON_ID AS assignedPersonId, tkl.C_SOURCE AS name, tkl.C_MAJOR_VERSION AS majorVersion, tkl.C_MINOR_VERSION AS minorVersion, tkl.C_ARCHIVED_FLAG AS archived, tkl.C_DEFINITION_ID AS definitionId,al.C_ALERT_DATETIME AS alertDateTime, al.C_ESCALATION_LEVEL AS escalationLevel, al.C_MAX_ESCALATION_LEVEL AS maxEscalationLevel, al.C_WORKFLOW_TO_START AS workflowToStart, al.C_ESCALATED_FLAG AS escalatedDB,al.C_DUEDATE AS dueDate
            FROM tkl_Alerts al INNER JOIN tkl_TaskList_Items tkl ON al.C_PERSIST_ID = tkl.C_PERSIST_ID
            WHERE tkl.C_ARCHIVED_FLAG = 0 AND tkl.C_INT_STATUS <> 40 AND tkl.C_INT_STATUS <> 50 AND tkl.C_ASSIGNED_PERSON_ID = 'karishma.shaik@infor.com'
            ORDER BY tkl_Alerts.C_ESCALATION_LEVEL DESC, tkl_Alerts.C_PERSIST_ID DESC

當我將 map 放入 hbm.xml 文件時,它給出的錯誤如下:

javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not extract ResultSet
    at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1387)
    at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1310)
    at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:277)
    at com.infor.ion.process.pulseengine.dao.TaskListItemHeaderDao.lambda$executeItemQuery$45(TaskListItemHeaderDao.java:661)
    at com.infor.ion.persist.multitenant.hibernate.Transactional.doInTransaction(Transactional.java:73)
    at com.infor.ion.process.pulseengine.dao.TaskListItemHeaderDao.executeItemQuery(TaskListItemHeaderDao.java:655)
    at com.infor.ion.process.pulseengine.dao.TaskListItemHeaderDao.getMyAlertHeaders(TaskListItemHeaderDao.java:443)
    at com.infor.ion.process.pulseengine.dao.TaskListItemHeaderDao.getMyAlertHeaders(TaskListItemHeaderDao.java:455)
    at com.infor.ion.process.pulseengine.logic.TaskListItemHeaderManager$DaoRetry$3.doInRetry(TaskListItemHeaderManager.java:276)
    at com.infor.ion.process.common.persist.WithRetry.doInRetry(WithRetry.java:77)
    at com.infor.ion.process.common.persist.WithRetry.doInRetry(WithRetry.java:113)
    at com.infor.ion.process.pulseengine.logic.TaskListItemHeaderManager$DaoRetry.getMyAlertHeaders(TaskListItemHeaderManager.java:272)
    at com.infor.ion.process.pulseengine.logic.TaskListItemHeaderManager.getMyAlertHeaders(TaskListItemHeaderManager.java:78)
    at com.infor.ion.process.pulseengine.logic.PulseUIServiceImpl.getMyAlertHeaders(PulseUIServiceImpl.java:149)
    at com.infor.ion.process.pulseengine.pulseui.api.services.PulseApiUIProxyService.getMyAlertHeaders(PulseApiUIProxyService.java:178)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)

有任何想法嗎?

Hibernate 不支持 UNION。 您可以做的是創建一個視圖並基於該視圖創建一個實體 class 或在這種情況下使用本機查詢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM