Có một truy vấn trong Mybatis của tôi có chứa một điều khoản trong đó về cơ bản là một tập hợp của Id của (Số nguyên)Làm thế nào để vượt qua một Integer Array khoản IN MyBatis
Tôi bây giờ bị mắc kẹt trên làm thế nào tôi có thể vượt qua một Integer mảng đến mệnh đề IN này để nó kéo lên các bản ghi thích hợp. Bằng cách truyền một String chứa ID tới mệnh đề IN, nhưng điều này không hoạt động như mong đợi.
Mã mẫu bên dưới
Mybatis Phương pháp sử dụng chú thích
@Select(SEL_QUERY)
@Results(value = {@Result(property="id",column="ID")})
List<Integer> getIds(@Param("usrIds") Integer[] usrIds);
Query
select distinct ID from table a where a.id in (#{usrIds})
Method Gọi
Integer[] arr = new Integer[2];
arr[0] = 1;
arr[1] = 2;
mapper.getIds(arr)
này không hoạt động, Mybatis ném một wh lỗi en Tôi gọi phương thức mapper
Mọi góp ý xin vui lòng
Cảm ơn mẹo, tôi sẽ kiểm tra và cập nhật không gian tại đây – Vivek
Thực ra, nó cũng hoạt động với các chú thích miễn là bạn bắt đầu chuỗi truy vấn bằng '
CÓ, bạn có thể làm điều đó bằng chú thích.
Nếu bạn đang sử dụng postgresql, bạn có thể thực hiện như in this post.
Nếu bạn đang sử dụng MySQL thử điều này thay đổi trong mẫu mã của bạn:
Mybatis Phương pháp sử dụng chú thích
Query (sử dụng MySQL)
Phương pháp gọi
Nguồn
2012-02-09 04:40:00
chính xác những gì tôi cần – deeshank
Một lưu ý có giá trị ở đây là FIND_IN_SET sẽ không sử dụng các chỉ mục để phiên bản này có khả năng hoạt động kém hơn một câu lệnh IN – Zack