【发布时间】:2019-10-01 23:55:34
【问题描述】:
我有以下有效的查询。此查询中的所有表都以某种方式存在关系。
@Repository(value = "ARepository")
public interface ARepository extends JpaRepository<CardEntity, String> {
@Query("SELECT xref.shortUtlTx FROM CardEntity card " +
"JOIN card.apexUrlCrossRef xref " +
"JOIN xref.sampleProdOffer offer " +
"WHERE xref.apexCard.cardNumber = :cardNum " +
"AND offer.apexeeOfferId = :myCode"
)
List<String> getAllValues(@Param("cardNum") String cardNum, @Param("myCode") String myCode);
}
但我也希望将另一个表(实体名称 -> UrlCountEntity)加入此查询,但该表与此查询中的其他表无关。有没有办法我可以做到这一点?
基于阅读博客,我尝试了以下但抛出错误。 在查询中添加了这一行:
并且存在(从 UrlCountEntity referCount WHERE 中选择 referCount referCount.url.urlTx = xref.shortUtlTx)
@Repository(value = "ARepository")
public interface ARepository extends JpaRepository<CardEntity, String> {
@Query("SELECT xref.shortUtlTx FROM CardEntity card " +
"JOIN card.apexUrlCrossRef xref " +
"JOIN xref.sampleProdOffer offer " +
"WHERE xref.apexCard.cardNumber = :cardNum " +
"AND offer.apexeeOfferId = :myCode " +
"AND EXISTS (SELECT referCount FROM UrlCountEntity referCount WHERE referCount.url.urlTx = xref.shortUtlTx)"
)
List<String> getAllValues(@Param("cardNum") String cardNum, @Param("myCode") String myCode);
}
错误如下:
方法抛出 'org.springframework.dao.InvalidDataAccessResourceUsageException' 例外。
无法提取结果集; SQL [不适用]
【问题讨论】: