java.lang.IllegalStateException:在结果元组中找不到别名



有人可以帮忙解决此错误吗:

java.lang.IllegalStateException: No aliases found in result tuple! Make sure your query defines aliases!

导致此错误的 JPA 查询是:

@Query("SELECT sm.messageCode, sm.messageDescription FROM SystemMessage sm WHERE UPPER(sm.messageTypeCode) = TRIM(UPPER(:messageTypeCodeEntered))")
    public List<Map<String, String>> returnCodeToDescMapping(@Param("messageTypeCodeEntered") String messageTypeCodeEntered);

我在网上研究了这个错误,但许多问题似乎都是指没有命名对象,但我认为我没有这个问题,因为我正在使用sm

谢谢。

Spring Data JPA 只能返回一个SystemMessage,但你可以将@Query设为:

@Query("SELECT sm FROM SystemMessage sm WHERE UPPER(sm.messageTypeCode) = TRIM(UPPER(:messageTypeCodeEntered))")
public List<SystemMessage> returnCodeToDescMapping(@Param("messageTypeCodeEntered") String messageTypeCodeEntered);

或作为

//Message is a new class with constructor public Message(messageCode, messageDescription ){..}
@Query("select new Message(sm.messageCode as messageCode , sm.messageDescription as messageDescription) from SystemMessage sm where UPPER(sm.messageTypeCode) = TRIM(UPPER(:messageTypeCodeEntered))")
public List<Message> returnCodeToDescMapping(@Param("messageTypeCodeEntered") String messageTypeCodeEntered);

最新更新