Spring JPA Data Rest

I am have been frustrated with trying to figure out JPA mapping and its serialization.

Problem. I have a bidirectional mapping, @ManyToMany and I want to lazy load both of them but only the parent lazy loads and changes accordingly for example when I change the fetch to eager but the child seems not to get any effect when I change to eager or load, it always Eager loads. Please why is this. Information all over the internet is quite messy.

Mappings

@Entity
@Table(name="employee")
public class Employee {
    @JsonManagedReference
    @ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
    private Store store;

    @ManyToMany(fetch = FetchType.LAZY)
    private Set<WorkSchedule> schedules = new HashSet<>()
}

@Entity
@Table(name="store")
public class Store {
    @OneToMany(mappedBy="store")
    @JsonBackReference
    List<Employee>employees = new ArrayList<>();
}

@Entity
@Table(name="workSchedule")
public class WorkSchedule {
    @ManyToMany(mappedBy="schedules")
    @JsonBackReference
    private Set<Employee> employees = new HashSet<>()
}

Problem 2. I also have a @ManyToOne and its bidirectional @OneToMany and the @ManyToOne always eager loads, I get the full json with it along and now when I change it to Fetch lazy I get this error.

{
  "timestamp": 1501115333547,
  "status": 500,
  "error": "Internal Server Error",
  "exception": "org.springframework.http.converter.HttpMessageNotWritableException",
  "message": "Could not write JSON: No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS); nested exception is com.fasterxml.jackson.databind.JsonMappingException: No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: java.util.ArrayList[0]->doorStockManagement.entity.Employee[/"store/"]->doorStockManagement.entity.Store_$$_jvst920_e[/"handler/"])",
  "path": "/api/employees/"
}

Please someone explain to me what is going on and how I get to lazy load or eager load when and wherever I like.