Spring Data findAllById无法正常运行

时间:2018-10-22 09:58:47

标签: spring spring-data-jpa spring-data

我使用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说很多()

1 个答案:

答案 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语句后出现在最终查询中。