@Batchsize annotation not working for OneToMany

I have following classes and on annotating @BatchSize annotation it is not working and I am getting n+1 select query.

class Shipment{
  @OneToMany(fetch = FetchType.LAZY, mappedBy = order.shipment, cascade = CascadeType.ALL, 
  orphanRemoval = true)
  @BatchSize(size=20)
  Set<Orders> orders = new HashSet(); <---- Batch size annotation not working 
  }

Order.class

class Order{
  @ToString.Exclude
  @ManyToOne(fetch = FetchType.LAZY , optional = false)
  @JoinColumn(name = "item_fk")
  @LazyToOne(value = LazyToOneOption.NO_PROXY)
  Item item;

  @ToString.Exclude
  @ManyToOne(fetch = FetchType.LAZY , optional = false)
  @JoinColumn(name = "shipment_fk")
  @LazyToOne(value = LazyToOneOption.NO_PROXY)
  Shipment shipment;
}

Item.class


  class Item{
     String id;
     String name;
    }

What is mistake in implementation that i am getting n+1 queries?

Please also post how you load the shipment, how you trigger lazy loading of the orders, and what queries are generated.