I have two classes as following,
Human.java
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public class Human implements Serializable {
   private long id;
   private String name;
    ....
}
Student.java
@Entity
@DynamicUpdate
public class Student extends MyFactories {
    private List<Know> KnowList;
    @OneToMany(fetch = FetchType.LAZY)
    public List<Know> getKnowlist() {
        return knowlist;
    }
    public void setKnowlist(List<Know> KnowList) {
        return Knowlist;
    }
}
Know.java
@Entity
public class Know implements Serializable {
    private long id;
    private Human hu;
    private Student st;
    ....
    @ManyToOne 
    public Person getHu() {
        return hu;
    }
    @ManyToOne
    public Client getSt() {
        return st;
    }
    ....  setters .....
}
Code
            Know kw = new Know();
            kw.setSt(studentObject);
            kw.setHu(humanObject);
            session.save(kw);
            tx.commit();
I am able to insert into Know table but hibernate does not insert any record to student_know table which it has created.
I have found this answer but it says I need to use that method if I always want to retrieve all the records. Which I do not (at times, I may just need to retrieve the student class not list of its know)
    System.out.println(this.student.getKnowList().size());
When I try to access the list it runs into following exception.
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.myproject.Student.knowList, could not initialize proxy - no Session
 
     
     
    