Good day. I need to check initialization (loaded) of fields. For this task I try to use `Hibernate.isInitialized`. I have the following entities:

```
@Entity
public class Contractor {
    /* ... */

    @OneToMany(mappedBy = "contractor", fetch = FetchType.LAZY)
    private List<Work> works = new ArrayList<Work>();

    /* ... */
}

@Entity
public class Work {
    /* ... */

    @ManyToOne(fetch = FetchType.LAZY)
    private Contractor contractor;

    @ManyToOne(fetch = FetchType.LAZY)
    private Project project;

    /* ... */
}

@Entity
public class Project {
    /* ... */

    @OneToMany(mappedBy = "project", fetch = FetchType.LAZY)
    private List<Work> works = new ArrayList<Work>();

    /* ... */
}

```

Then I try to fetch entities by follow method:

```
List<Contractor> list = em.createQuery("SELECT c FROM Contractor c").getResultList();
    for (Contractor contractor : list) {
        Hibernate.initialize(contractor.getComments());
        Hibernate.initialize(contractor.getWorks());
        for (Work work : contractor.getWorks()) {
            Hibernate.initialize(work.getProject());
        }
    }
return list;

```

After that I check initialization sign of fields (for serialization) by two way:

```
Project p = contractor.getWorks().get(0).getProject();
Field f = Hibernate.getClass(p).getDeclaredField("works");
f.setAccessible(true);
System.out.println(Hibernate.isInitialized(f.get(p)));

System.out.println(Hibernate.isInitialized(contractor.getWorks().get(0).getProject().getWorks()));

```

And results are different for collections (true, false), but same for single objects. May be anyone know why?