diff --git a/stream-plugin/stream-plugin-mybatis-plus/src/main/java/io/github/vampireachao/stream/plugin/mybatisplus/BaseQueryHelper.java b/stream-plugin/stream-plugin-mybatis-plus/src/main/java/io/github/vampireachao/stream/plugin/mybatisplus/BaseQueryHelper.java index e3653433a233153bfd0fa4ce952e68f81f6c020f..fa86b1f3d358e93ec3326095b0d2cd46bf2777c9 100644 --- a/stream-plugin/stream-plugin-mybatis-plus/src/main/java/io/github/vampireachao/stream/plugin/mybatisplus/BaseQueryHelper.java +++ b/stream-plugin/stream-plugin-mybatis-plus/src/main/java/io/github/vampireachao/stream/plugin/mybatisplus/BaseQueryHelper.java @@ -8,6 +8,7 @@ import io.github.vampireachao.stream.core.optional.Sf; import java.io.Serializable; import java.util.Collection; +import java.util.HashSet; import java.util.function.UnaryOperator; @@ -41,7 +42,7 @@ public abstract class BaseQueryHelper< } public TR in(Collection dataList) { - wrapper = Sf.mayColl(dataList).mayLet(values -> wrapper.in(keyFunction, values)).orGet(() -> Database.notActive(wrapper)); + wrapper = Sf.mayColl(new HashSet<>(dataList)).mayLet(values -> wrapper.in(keyFunction, values)).orGet(() -> Database.notActive(wrapper)); return (TR) this; } diff --git a/stream-plugin/stream-plugin-mybatis-plus/src/main/java/io/github/vampireachao/stream/plugin/mybatisplus/OneToManyToOne.java b/stream-plugin/stream-plugin-mybatis-plus/src/main/java/io/github/vampireachao/stream/plugin/mybatisplus/OneToManyToOne.java index f2044a2fe0513cfc1dd8d9a02663e38757d16a1b..593127fc76b22c51c757edd0d9e5fea36138b60c 100644 --- a/stream-plugin/stream-plugin-mybatis-plus/src/main/java/io/github/vampireachao/stream/plugin/mybatisplus/OneToManyToOne.java +++ b/stream-plugin/stream-plugin-mybatis-plus/src/main/java/io/github/vampireachao/stream/plugin/mybatisplus/OneToManyToOne.java @@ -53,7 +53,7 @@ public class OneToManyToOne, V extends } public OneToManyToOne in(Collection dataList) { - middleWrapper = Sf.mayColl(dataList).mayLet(values -> middleWrapper.in(middleKey, values)).orGet(() -> Database.notActive(middleWrapper)); + middleWrapper = Sf.mayColl(new HashSet<>(dataList)).mayLet(values -> middleWrapper.in(middleKey, values)).orGet(() -> Database.notActive(middleWrapper)); return this; } diff --git a/stream-plugin/stream-plugin-mybatis-plus/src/test/java/io/github/vampireachao/stream/plugin/mybatisplus/ManyTest.java b/stream-plugin/stream-plugin-mybatis-plus/src/test/java/io/github/vampireachao/stream/plugin/mybatisplus/ManyTest.java index 4a2c9cfedac10740bdd2895efe5619df68220be3..19f01da441ac12d992472be9af6b7322e70e5333 100644 --- a/stream-plugin/stream-plugin-mybatis-plus/src/test/java/io/github/vampireachao/stream/plugin/mybatisplus/ManyTest.java +++ b/stream-plugin/stream-plugin-mybatis-plus/src/test/java/io/github/vampireachao/stream/plugin/mybatisplus/ManyTest.java @@ -5,6 +5,7 @@ import io.github.vampireachao.stream.plugin.mybatisplus.pojo.po.UserInfo; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -20,6 +21,7 @@ class ManyTest { @Test void testQuery() { + List userInfoList = Many.of(UserInfo::getId).eq(1L).parallel().query(); List nameList = Many.of(UserInfo::getId).eq(1L).value(UserInfo::getName).sequential().query(); List leAgeNameList = Many.of(UserInfo::getId).eq(1L).value(UserInfo::getName)