我使用spring-data-jpa-2.0.9.RELEASE lib。 当我想使用 JpaRepository.findAllById (可迭代ID)时 有2个ID调试,向我显示错误
org.eclipse.persistence.exceptions.DatabaseException:
Internal Exception: java.sql.SQLException: Operand should contain 1 column(s)
Error Code: 1241
Call: SELECT ID, CONFIGURATION, IMPORT_ID, NAME, STATE FROM TB_MARKET WHERE (ID IN ((?,?)))
Query: ReadAllQuery(referenceClass=MarketEntity sql="SELECT ID, CONFIGURATION, IMPORT_ID, NAME, STATE FROM TB_MARKET WHERE (ID IN (?))")
MySQL的错误代码1241说很多()
答案 0 :(得分:1)
第一个ID尝试更新到最新的Spring数据jpa库,即2.1.1.RELEASE
对于Maven:
<!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-jpa -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>2.1.1.RELEASE</version>
</dependency>
如果您无法更新库,则在使用的版本中这是已知问题时,最好在存储库中滚动自己的查询:
在有问题的存储库中添加:
List<Entity> findByIdIn(Set<Integer> ids);
将ID设置为一组将防止将重复的ID转换为sql语句后出现在最终查询中。