有人可以帮忙解决此错误吗:
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);