【发布时间】:2019-05-23 11:52:48
【问题描述】:
场景: 我有一个 MySQL 数据库,其中有一个包含用户和产品映射的表。我的应用程序提供了一个 api,所以我必须知道映射不会被多次完成。 因此,我想检查两个 id(用户和产品)是否已经映射。
问题:
我有一个来自here 的查询,我希望在其中显示一个布尔值,它会显示条目是否已存在。
@Query(value ="SELECT case when count(id) > 0 then true else false end FROM user_product_matching WHERE user_id=:userId AND product_id=:productId", nativeQuery = true)
Boolean productAlreadyAdded(@Param("userId") Long userId,@Param("productId") Long productId);
我得到的错误是:
java.math.BigInteger 不能转换为 java.lang.Boolean
虽然我现在不能运行它,但我的目标是在spring 中编写一个原生查询,我可以在其中使用此查询的结果来执行 if else case 场景,其中 a 可以执行插入或跳过。
这可能吗?我该如何编写查询?
编辑: 我忘了提到这也必须在 docker 容器中工作,其中数据库和表不是由 spring 创建的。所以我猜存储过程会是更好的方法吗?
【问题讨论】:
标签: java sql spring-data-jpa